是否可以首先将一组 Java 源代码文件编译为字节码,然后运行该字节码——不是直接运行,而是通过向另一个 java 程序添加命令——这样这个新的 java 程序(在其各个类中)/functions) 运行之前编译的 java 字节码?
如果这是可能的,那么执行此操作所需的命令是什么?
最佳答案
当然 - 这就是图书馆的全部意义!它们通常作为 jar 文件分发,但您不必使用 jar 文件来重用代码。
您需要做的就是确保它在编译时和执行时都位于类路径中。
例如,创建以下文件:
lib\p1\Hello.java:
package p1;
public class Hello {
public static void sayHi(String name) {
System.out.println("Hi " + name + "!");
}
}
app\p2\Greeter.java:
package p2;
import p1.Hello;
public class Greeter {
public static void main(String[] args) {
Hello.sayHi(args[0]);
}
}
现在让我们编译我们的“库”:
$ cd lib
$ javac -d . p1/Hello.java
$ cd ..
现在,通过将其添加到类路径中,我们可以在我们的“应用程序”中使用它:
$ javac -d . -cp ../lib p2/Greeter.java
$ java -cp .:../lib p2.Greeter Jon
Hi Jon!
(这一切都适用于 Windows,只是在最后一行的联合类路径中使用“;”而不是“:”。)
关于java - 我可以以某种方式从新的 Java 程序运行以前编译的 Java 字节码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15295169/