从jar中的java文件调用方法

时间:2011-08-24 18:21:00

标签: jar

我有一个jar文件,我在执行java文件时动态加载(例如 my.java )。 我是这样做的:

File newFile = new File("path");

JarFile newJar= new JarFile(newFile);

现在这个jar里面有一个特定的java文件,我知道它的名字( say known.class )。 我想创建一个这个known.class的对象,并从my.java中调用一个方法。

我不知道该如何解决这个问题。任何人都可以帮忙吗? 我尝试在线查找,但没有找到任何帮助。

感谢。

2 个答案:

答案 0 :(得分:1)

您需要在jar内部使用.class文件(已编译的java代码),而不是.java文件。如果你有这个,可以将.jar添加到类路径或类路径中的一个目录中,然后只需从Java代码中引用Object。

即:

MyObject newObj = new MyObject();

以下是在类路径中指定jar的方法:

java -classpath ".;myjar.jar" org.mine.MyClass

编辑:由于您不想更改类路径,请尝试以下操作:

File file  = new File("/path/to/myjar.jar");
URL url = file.toURL();  
URL[] urls = new URL[]{url};
ClassLoader cl = new URLClassLoader(urls);

Class cls = cl.loadClass("org.mine.myclass")

答案 1 :(得分:1)

您需要创建URLClassLoader而不是JarFile。阅读ClassLoader的文档可以帮助您,也可以使用Class