我有一个应用程序解析一些zip格式的文件并导致一些csv文件。所以现在我有一个要求,我必须从应用程序制作一个jar文件,并从java程序调用该jar,以便它可以做同样的工作。所以我的应用程序有以下结构我附上它的图片...
我正在尝试使用反射api来完成这项工作,基本上我正在尝试动态加载reckoner类。在我的方法中我认为它正在加载类,因为如果我拼错了类名它会给出错误。但是当我编写这段代码并尝试运行时 什么都没发生。我正在尝试下一个代码..
public class Driver {
/**
* @param args
*/
public static void main(String[] args) {
try{
ClassLoader myClassLoader = ClassLoader.getSystemClassLoader();
String classNameToBeLoaded="com.gamma.Reckoner";
Class myClass = myClassLoader.loadClass(classNameToBeLoaded);
Object whatInstance = myClass.newInstance();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
所以,当我要制作jar时,它可以尝试从另一个程序调用它,目录结构应该在那里。所以根据实际的skybin解析器做了。现在我将如何调用jar.please帮助我。我必须调用skybin.jar的Reconer.java类,它是应用程序的驱动程序。所以使用反射我可以称之为
答案 0 :(得分:0)
这是一个可能的答案,真的不确定你的要求。看起来你有一个罐子,想知道如何运行它?
你是怎么得到那个罐子的? Maven / ant? IDE cliks?
无论如何评论行:
cd c:\ prjs \ skybin \
java -cp c:\ prjs \ skybin \ skybin.jar Reckoner
java应该在classpath中给出完整的路径,如
c:\ program files \ etcjava \ v77 \ bin \ java -cp c:\ prjs \ skybin \ skybin.jar Reckoner
这是您计算机上的示例路径可能不同,或者将java bin文件夹添加到路径
做一些关于启动java和使用jar的教程
如果在linux / mac上需要使用/ in路径而不是\
为了找到你的罐子,你可以正确地制作它。
在命令提示符下创建一个新目录
mkdir c:\ prjs \ tmp2
cd到那并发出命令
jar xf c:\ prjs \ skybin \ skybin.jar
现在检查资源管理器中的输出应该看到你的包结构和里面的类,没有额外的文件夹 根据你的图像,你应该看到com / gamma / mail和其他文件夹
答案 1 :(得分:0)
您可以在Classpath中添加jar: http://www.wikihow.com/Add-JARs-to-Project-Build-Paths-in-Eclipse-%28Java%29