我有一个奇怪的场景,我让客户在他的工作区中编辑几个类。我有一个可执行的 jar,他将把它放在项目的 lib 文件夹中。在其中一个菜单中,它应该调用客户在其工作区中编辑的 java 类。
如何让 Jar 调用工作区中的 Java 类?
最佳答案
ProcessBuilder pb = new ProcessBuilder("/path/to/java", "-cp", "packagename.Class");
pb.directory(new File("preferred/working/directory"));
Process p = pb.start();
这适用于 main 方法。
或者:
InputStream fileInputStream = new FileInputStream("c:/..../TestClass.class");
byte rawBytes[] = new byte[fileInputStream.available()];
fileInputStream.read(rawBytes);
Class<?> regeneratedClass = this.defineClass("testpack.TestClass",rawBytes, 0, rawBytes.length);
System.out.println(regeneratedClass.getMethod("getSimpleMethod", null).invoke(regeneratedClass.newInstance(), null));
关于java - 如何从 Jar 中读取工作区中的 Java 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29253214/