java - 在运行时执行java命令

标签 java

Process process2 = Runtime.getRuntime().exec(new String[]{"javac","-g:vars","/Users/amol/Documents/Java/a.java"});
Process process3 = Runtime.getRuntime().exec(new String[]{"javap","-l","-c","/Users/amol/Documents/Java/a"});

我尝试运行这段代码,但我遇到了一个奇怪的问题。它编译正确(意味着第一行编译了程序)但第二行给出了一个错误,指出 'a' not found。但是,当我检查给定目录时,a.class 文件已正确创建。我应该如何正确运行第二行?

最佳答案

javap 采用类名,而不是文件名。你可能想要执行:

javap -l -c -classpath /Users/amol/Documents/Java a

(当然,将其适本地拆分为字符串参数。)

请注意,如果 a 在包中,或者如果 a.java 中的类实际上不是 a,这仍然会失败完全(对非公共(public)类(class)有效)。在这两种情况下,您都需要确定所涉及的类,可能是通过构建一个空目录并找出哪些文件是由 javac 生成的。

关于java - 在运行时执行java命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11323434/

相关文章:

java - hibernate 工具 : persistence unit not found

java - 读取文件 Libgdx 运行时异常时出错

java - String.intern() 的垃圾收集行为

java - "Error: This Java instance does not support a 32-bit JVM."[1] "Please install the desired version."

java - 为什么某些 zip 文件的文件内容未知

java - 多个根标签错误(在 syles.xml 文件中)

java - 如何从现场获取类(class)?

java - Jackson XML 映射器强制使用小写 XML 标签

Javax.mail.* 包不存在 - 为什么?

java - Java中的大量对象(使用HashMap)