我正在尝试使用Java的
Process p = Runtime.getRuntime().exec(command);
在其他文件夹中编译 .java文件,但它不起作用 我的 Main.class 位于 a 文件夹中,所有 .java文件位于 a / test 文件夹中。< / p>
Main.class是:
public class Main{
public static void main( String[] args )
throws IOException,InterruptedException{
String line ="";
String command = "javac test/*.java";
Process pro = Runtime.getRuntime().exec(command);
BufferedReader in = new BufferedReader(
new InputStreamReader( pro.getInputStream()));
while ((line = in.readLine()) != null) {
System.out.println(line);
}
BufferedReader er = new BufferedReader(
new InputStreamReader( pro.getErrorStream()));
while ((line = er.readLine()) != null) {
System.out.println(line);
}
}
}
错误流显示:
javac: file not found: test/*.java
为什么会这样?文件夹测试中有一些java文件
答案 0 :(得分:1)
在这种情况下,Java不能使用*作为通配符以及shell。 这意味着您将转换* - &gt;手动列出file_names并为每个特定文件执行exec()。
还要注意类路径。如果您运行此类窗体IDE,则类路径可能与您预期的不同(放置类的文件夹)。