Este artigo descreve o método de implementação do Java de chamar Jython para executar arquivos Python. Compartilhe -o para sua referência, como segue:
Durante o desenvolvimento da Web, você costuma usar bibliotecas de terceiros no ambiente local no ambiente da Web. Este artigo explica como o Java executa arquivos Python.
Diz -se on -line que existem três métodos, mas na verdade existem apenas dois métodos. O segundo método é introduzido abaixo (Jython).
Método 1
java.lang.Runtime RunTime RT = RUNTime.GetRuntime (); tente {Process proc = rt.exec ("python /tmp/test.py"); } catch (Exceção e) {e.printStackTrace (); }Aqui está um subconceito:
1. Runtime.getRuntime() pode obter o ambiente de tempo de execução da JVM atual, que também é a única maneira de Java para obter o ambiente de tempo de execução.
2. A maioria dos outros métodos no tempo de execução são métodos de instância, o que significa que getRuntime deve ser usado sempre que a chamada de tempo de execução for feita.
3. O método de saída no tempo de execução é um método para sair da JVM atual, que é provavelmente o único. Porque eu vi essa saída na classe do sistema, na verdade, sai da JVM ligando Runtime.exit() . Aqui vou explicar as regras gerais do Java para o valor de retorno do tempo de execução (também mencionado posteriormente). 0 representa a saída normal e não-0 representa aborto anormal. Esta é apenas uma regra Java. Sempre haverá uma pequena confusão em cada sistema operacional.
O segundo tipo (ponto -chave)
Chamando Jython API
Etapa 1: Adicione dependências
<!-https://mvnrepository.com/artifact/org.python/jython-> <pendency> <voundid> org.python </foupid> <stifactId> jython </ArtifactId> <Versão> 2.7.0 </versão </spendency>
Etapa 2: Crie um novo teste.
importar org.python.util.pythoninterpreter; importar java.util.properties;/** * Autor: Conheça Xiaoxing * E-mail: [email protected] * Data: 17-3-21 * Horário: 8:18 pm * descrever: JPYTHON TEST */Public Class Test {Public Maid Maid Maid. Pythoninterpreter (); Interpreter.exec ("Days = ('mod', 'Ter', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun');"); interpreter.exec ("Dias de impressão [1];"); interpreter.execfile ("/tmp/test.py"); Interpreter.exec ("Print 'criado pelo Tengxing em 2017.3'"); }}
Etapa 3: Execute test.java
Os testes começaram às 21h40 ... Tuethis é test.Perecled by Tengxing em 2017.3!
O processo terminou, o código de saída 0
O lembrete pode relatar a seguinte exceção:
Exceção no Thread "Main" Importror: não é possível importar o módulo do site e suas dependências: nenhum módulo nomeado site
Determine se os seguintes atributos estão corretos:
Motivo: python.import.site não é inicializado
resolver:
public class Test {public static void main (string [] args) {Propriedades props = new Properties (); props.put ("python.home", "caminho para a pasta lib"); props.put ("python.console.encoding", "utf-8"); props.put ("python.security.respepjavaaccessibilidade", "false"); props.put ("python.import.site", "false"); Propriedades preprop = System.getProperties (); Pythoninterpreter.initialize (pré -props, adereços, nova string [0]); Interpretador PythonInterpreter = new PythonInterpreter (); Interpreter.exec ("Days = ('mod', 'Ter', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun');"); interpreter.exec ("Dias de impressão [1];"); interpreter.execfile ("/tmp/test.py"); Interpreter.exec ("Print 'criado pelo Tengxing em 2017.3!'"); }}Ok perfeito
// chama o método em python e imprima o resultado da pyfunção func = (pyfunção) Interpreter.get ("Adder", pyfunction.class); int a = 2010, b = 2; pyobject pyobj = func. pyobj.toString ());Artigo de referência:
//www.vevb.com/article/137380.htm
//www.vevb.com/article/137385.htm
Anexo: jython.jar clique aqui para baixar este site .
Para mais conteúdo relacionado ao Java, os leitores interessados neste site podem visualizar os tópicos: "Estrutura de dados Java e tutorial de algoritmo", "Resumo da operação Java Dom Node Tips", "Resumo de Dicas de Operação de Arquivos e Diretórios de Java" e "Resumo das dicas de operação do Java Cache"
Espero que este artigo seja útil para a programação Java de todos.