2013-10-20 102 views
-1

執行Java文件,我怎麼能打開了一個Python的Java文件?我已經搜索過網,發現這個:編譯和蟒蛇

import os.path, subprocess 
from subprocess import STDOUT, PIPE 

def compile_java (java_file): 
    subprocess.check_call(['javac', java_file]) 

def execute_java (java_file): 
    cmd=['java', java_file] 
    proc=subprocess.Popen(cmd, stdout = PIPE, stderr = STDOUT) 
    input = subprocess.Popen(cmd, stdin = PIPE) 
    print(proc.stdout.read()) 

compile_java("CsMain.java") 
execute_java("CsMain") 

但後來我得到這個錯誤:

Traceback (most recent call last): 
    File "C:\Python33\lib\subprocess.py", line 1106, in _execute_child 
    startupinfo) 
FileNotFoundError: [WinError 2] The system cannot find the file specified 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "C:\casestudy\opener.py", line 13, in <module> 
    compile_java("CsMain.java") 
    File "C:\casestudy\opener.py", line 5, in compile_java 
    subprocess.check_call(['javac', java_file]) 
    File "C:\Python33\lib\subprocess.py", line 539, in check_call 
    retcode = call(*popenargs, **kwargs) 
    File "C:\Python33\lib\subprocess.py", line 520, in call 
    with Popen(*popenargs, **kwargs) as p: 
    File "C:\Python33\lib\subprocess.py", line 820, in __init__ 
    restore_signals, start_new_session) 
    File "C:\Python33\lib\subprocess.py", line 1112, in _execute_child 
    raise WindowsError(*e.args) 
FileNotFoundError: [WinError 2] The system cannot find the file specified 
>>> 

python文件和java文件位於同一個文件夾中,而我正在使用Python 3.3.2,我該如何解決這個問題?或者你們是否有另一種方式來做到這一點?,任何答案表示讚賞謝謝!

+0

請將追溯文章發佈,而不是圖片 – MattDMo

+0

確定即時編輯它,對不起,但我知道爲什麼嗎?對不起,我是新來的。 –

+0

主要用於搜索 – MattDMo

回答

1

我認爲它不識別javac命令。嘗試手動運行該命令,並且如果javac不是可識別的命令,請將其註冊到您的PATH變量中,然後重試。

或者您可以嘗試輸入javacjava的Java目錄的完整路徑名。

+0

上述回溯如何註冊它在PATH變量?,我已經嘗試輸入完整路徑名到目錄並得到相同的錯誤,並且爲javac和java添加參數也不起作用 –

+2

「java」和「javac」的路徑類似於C:\ Program Files \ Java \ jdk1 .7.0_17 \ bin''。版本可能會有所不同,具體取決於您安裝的版本。只需編輯PATH變量,添加一個';'然後指向java的bin文件夾。如果您不知道如何訪問PATH變量,請到這裏:http://www.computerhope.com/issues/ch000549.htm。 但是,如果在命令中輸入Java的bin目錄的路徑(即'subprocess。check_call(['C:\ Program Files \ Java \ jdk1.7.0_17 \ bin \ javac',java_file])')沒有工作,那麼它可能不是問題。 – Jaws212

+0

你好我追加到我的系統變量這個C:\ Program Files文件(x86)\ Java \ jdk1.7.0_11 \ bin的路徑,並試圖運行我的java程序在cmd和javac被識別,程序運行沒有問題和我也嘗試再次運行我的python代碼,並再次出現相同的錯誤 –

0

您需要將path添加到您的java文件名。像這樣:

compile_java("C:\\path\to\this\CsMain.java") 
+0

我試過這個,並得到了同樣的錯誤:( –

+0

完全相同的錯誤呢?@JoeMarie – yakiang

+0

是的先生,完全像上述 –