检测到Java文件无法使用subprocess.call进行编译

时间:2013-12-15 17:55:20

标签: java python javac

我有一个程序符合给定目录中的java文件。如果没有编译,我想要一个小错误消息。现在它只是空白

这是我的代码:

import sys
import os.path,subprocess

print('in main')

directoryContents = os.listdir('.')

for fn in directoryContents:
    if fn.rfind(".java") != -1:
        print ("found a java file named " + fn)
        subprocess.check_call(['javac', fn])    
        java_class,ext = os.path.splitext(fn)
        className = fn[0: fn.rfind(".java")]
        print ("classname is " + className)
        print ("Compiled:")
        cmd = ['java',  className]
                subprocess.call(cmd, shell=False)
        print ("\n")

如何检测到没有任何内容已打印到控制台?

1 个答案:

答案 0 :(得分:0)

你应该试试这个:

directoryContents = os.listdir('.')

for fn in directoryContents:
    print fn, fn.rfind(".java")

并在命令行中运行您的文件:

python file.py

应该有一些输出。如果没有,则无法运行代码。