java - 如何从 Jar 中读取工作区中的 Java 文件?

标签 java eclipse jar classpath

我有一个奇怪的场景,我让客户在他的工作区中编辑几个类。我有一个可执行的 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/

相关文章:

java - Jar 文件未使用 ant 脚本创建

Java 堆被无法访问的对象淹没

java - IntelliJ Maven "Error: Invalid or corrupt jarfile"

c - 在 Vim 中重构 C/C++(例如像 Eclipse 中的方法提取)

java - 导出 jar 时将 Javadoc 添加到 Eclipse 项目

java - 是否可以为 Java Applet 制作 JAR 文件?

java - Hadoop 如何拆分和组合其输出数据?

java - 为什么我会收到未检查的作业警告?

Eclipse (STS) 欢迎仪表板错误 - 无法看到欢迎仪表板

java - 不要在 eclipse RCP 应用程序中保存工作台状态