Компиляция Java из Python - PullRequest
       32

Компиляция Java из Python

5 голосов
/ 10 августа 2011

Я пишу скрипт для компиляции файла .java из Python Но ошибка

import subprocess
def compile_java(java_file):
    cmd = 'javac ' + java_file 
    proc = subprocess.Popen(cmd, shell=True)

compile_java("Test.java")

Ошибка:

javac is not recognized as an internal or external command windows 7

Я знаю, как решить проблему с CMD на Windows. Но как мне решить это для Python? Что я имею в виду: как мне установить путь?

Ответы [ 2 ]

8 голосов
/ 10 августа 2011
proc = subprocess.Popen(cmd, shell=True, env = {'PATH': '/path/to/javac'})

или

cmd = '/path/to/javac/javac ' + java_file 
proc = subprocess.Popen(cmd, shell=True)
1 голос
/ 12 августа 2011

Вы также можете отправлять аргументы:

            variableNamePython = subprocess.Popen(["java", "-jar", "lib/JavaTest.jar", variable1, variable2, variable3], stdout=subprocess.PIPE)
            JavaVariableReturned = variableNamePython.stdout.read()
            print "The Variable Returned by Java is: " + JavaVariableReturned

Код Java для получения этих переменных будет выглядеть так:

public class JavaTest {
    public static void main(String[] args) throws Exception {
        String variable1 = args[0];
        String variable2 = args[1];
        String variable3 = args[2];
...