从cmdline处理Java JAR文件



让我们有一个Java应用程序,包含在文件A.javaB.java中,依赖于somejar.jar文件。问题是:

  • 如何创建一个自运行的JAR文件与所有的依赖关系和源代码编译?主要条件是仅使用标准Java实用程序(JDK提供;例如:java, javacjar)和NOT任何构建工具,如Maven, Ant或任何其他

  • 如何在我的应用程序中使用外部JAR文件?例如:if the 'otherjar.jar' is present near the main application JAR, we should call method Moo::method1 from that class, passing the new instance of Foo class to it. Moo and Foo should be present in 'otherjar.jar' file. Still, the 'config.xml' file should be there too .

从@michael667给出的链接来看,您可能对这一节更感兴趣:将类添加到JAR文件的类路径中。特别是这个注释:

注意:Class-Path头指向本地网络上的类或JAR文件,而不是JAR文件中的JAR文件或通过internet协议可访问的类。要将JAR文件中的JAR文件中的类加载到类路径中,必须编写自定义代码来加载这些类。例如,如果MyJar.jar包含另一个JAR文件MyUtils.jar,则不能使用MyJar.jar清单中的class - path头将MyUtils.jar中的类加载到类路径中。

如果你不编写自己的类加载器,那么用标准java工具是不可能做到的。有一些工具,比如One-jar,可以为你提供这样的类加载器。

当然,你总是可以手动使用爆炸jar的方法,但这似乎不是你真正想要的。

您可能还会发现这个问题的答案很有用:在JAR中包含JAR的类路径

这应该可以回答你的大部分问题:http://download.oracle.com/javase/tutorial/deployment/jar/basicsindex.html

相关内容

  • 没有找到相关文章