Java chama script python no windows10


1. Ambiente básico do Windows

Java chama o código python, deve haver um ambiente operacional java e um ambiente operacional python;

1.1 instalação java

1.1.1 Baixar jdk (a versão pode ser selecionada)

Link para download: https://blog.csdn.net/weixin_42096620/article/details/109840500
Insira a descrição da imagem aqui

1.1.2 Instale o jdk

Clique duas vezes para fazer o download, a próxima etapa está correta, eu instalei na unidade c por padrão;

1.1.3 Configurar variáveis ​​de ambiente java

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Verifique se o java foi instalado com sucesso:
Insira a descrição da imagem aqui

1.2 instalação do python

1.2.1 download do python

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

1.2.3 windows install python

1. Clique duas vezes no exe baixado
Insira a descrição da imagem aqui
2. Em seguida, a próxima etapa:
3. Selecione o navegador d: / python
4. Próxima etapa
5.close

1.2.3 Configurar variáveis ​​de ambiente Python

Crie um novo caminho no caminho java acima:
Insira a descrição da imagem aqui

1.2.4 Teste se o python foi instalado com sucesso

cmd input python
Insira a descrição da imagem aqui

1.2.5 Ver bibliotecas de terceiros do Python

1. Insira o diretório Python Script
2.cmd
3. Visualize o comando da biblioteca de classes baixado:
Insira a descrição da imagem aqui
4. Instale o comando da biblioteca de classes:
pip install numpy

1.2.6 Testar script python (sem parâmetros)

  1. Entre no arquivo demo1.py:
import numpy as np

a = np.arange(12).reshape(3,4)
print(a)
  1. Entre na pasta demo1.py:
  2. cmd em
  3. entrar
python demo1.py
或者
demo1.py
  1. resultado:
    Insira a descrição da imagem aqui

1.2.7 Teste o script python (passando parâmetros)

  1. Crie o script python demo2.py
import sys
a=sys.argv[1]
b=sys.argv[2]
print(a,b)
  1. cmd executa este script
  2. Nota do resultado
    Insira a descrição da imagem aqui
    : os parâmetros são separados por espaços

2. Java chama python no windows?

2.1 Passando parâmetros

2.1.1 código de script dopython

import io
import sys
import jieba
#防止乱码
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8')
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
target=sys.argv[1]
def jiexi(target):
    path=r'D:\graphDB\问题模板.txt'


    with open(path,'r',encoding='utf-8') as f :
        questions=f.readlines()
        questions_all = [q.strip().split(':')[-1] for q in questions if q != '\n']     #所有问题


        questions = [jieba.lcut(q.strip().split(':')[-1]) for q in questions if q != '\n']   #所以问题进行分词
        target=set(jieba.lcut(target))       #目标问句分词


        q_min=[]
        questions_target=[]      #目标问句转换后的问句

        for i in questions:
            questions=set(i)
            number=target-questions           #匹配度

            q_min.append(len(number))         #与所有问题匹配度
        min_l=min(q_min)                     #匹配度最高值/列表


        for i in range(len(q_min)):
            if q_min[i]==min_l:
                questions_target.append(questions_all[i])
        return  questions_target


def jieshou(target):
    
    aaa=jiexi(target)
    
    return aaa[-1]

a=jieshou(target)
print(a)

2.1.2 java chama o código python por meio de Runtime.getRuntime (). Exec ()

package com.你的包.shipatlas;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * @author lixy
 */
public class CallPythonQuestion {
    
    
    public static void main(String[] args) throws Exception{
    
    
        try {
    
    
            // 参数1: 命令行的python
            // 参数2: python脚本URL
            // 参数3: python脚本里边接的参数
            String[] args1 = new String[] {
    
     "python", "D:\\guanwei\\graphDB\\question.py", "朝雾级驱逐舰舰长"};
            Process proc = Runtime.getRuntime().exec(args1);// 执行py文件

            BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream(), "utf-8"));
            String line = null;
            while ((line = in.readLine()) != null) {
    
    
                System.out.println(line);
            }
            in.close();
            // 打印0,调用py成功; 打印1,调用py失败
            System.out.println(proc.waitFor());
        } catch (IOException e) {
    
    
            e.printStackTrace();
        } catch (InterruptedException e) {
    
    
            e.printStackTrace();
        }
    }
}

2.1.3 Java chama solução truncada de python

  1. Pitão
    Insira a descrição da imagem aqui
  2. java não pode escrever
    Insira a descrição da imagem aqui

3. Java chama scripts python no Linux (com oportunidade de adicionar)

Acho que você gosta

Origin blog.csdn.net/weixin_42096620/article/details/110920727
Recomendado
Clasificación