我可以以某种方式从新的Java程序运行以前编译的java字节码吗?

Arv*_*ind 0 java bytecode

是否有可能首先将一组Java源代码文件编译成字节码,然后运行该字节码 - 不是直接运行,而是通过向另一个java程序添加命令 - 这样这个新的java程序(在其各种类/函数中)运行以前编译的java字节码?

如果可以,那么执行此操作所需的命令是什么?

Jon*_*eet 5

绝对 - 这就是图书馆的全部意义!他们通常是JAR文件,但你不,为了重用代码中使用的jar文件.

您需要做的就是确保它在编译时和执行时都在类路径上.

例如,创建以下文件:

lib\p1\Hello.java:

package p1;

public class Hello {
    public static void sayHi(String name) {
        System.out.println("Hi " + name + "!");
    }
}
Run Code Online (Sandbox Code Playgroud)

app\p2\Greeter.java:

package p2;

import p1.Hello;

public class Greeter {
    public static void main(String[] args) {
        Hello.sayHi(args[0]);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在让我们编译我们的"库":

$ cd lib
$ javac -d . p1/Hello.java
$ cd ..
Run Code Online (Sandbox Code Playgroud)

现在,通过将其添加到类路径中,我们可以在"app"中使用它:

$ javac -d . -cp ../lib p2/Greeter.java
$ java -cp .:../lib p2.Greeter Jon
Hi Jon!
Run Code Online (Sandbox Code Playgroud)

(这在Windows上的所有工作与一个使用的变化";"而不是":"在最后一行关节类路径)