将comm.jar添加到我的jar中

我将comm.jar库添加到我的.jar然后得到javax.comm.NoSuchPortException

这个bug是因为我没有将javax.comm.propertieswin32com.dll添加到我的jar中吗? 如何在清单中添加此文件?

Java不支持Jars中的Jars。 确保javax.comm软件包位于应用程序的运行时类路径上的正确方法是添加一个清单,该清单提供相关路径到相关的Jar,并确保Jar位于正确的位置。 有关详细信息,请参阅Java Tutorial中的使用清单文件:基础知识 ,特别是向JAR文件的类路径添加类 。

还有其他方法可用于applet和应用程序。 使用Java Web Start启动。

@Gogoo的回答是将内容复制到JVM安装目录中。

它应该工作,但通常不是一个好主意:

  • 以这种方式安装的东西将由您使用该安装运行的所有应用程序共享。 根据它的不同,它可能会干扰其他应用程序。

  • 每次更新JVM时,都必须记住将这些文件复制到新的安装目录中。

IMO,更好的想法是将这些文件放在一个单独的目录树中,并编写一个包装器脚本,用类路径和库路径上的文件启动应用程序。 和/或看@Andrew Thompson的回答。

试试FatJar 。

Fat Jar Eclipse插件是一个部署工具,它将Eclipse java项目部署到一个可执行jar中。

它将Entry“Build Fat-JAR”添加到Export-Wizard。 除了eclipse标准jar-exporter引用的类和jar包含在“Fat-Jar”中,因此生成的jar包含所有需要的类,可以直接用“java -jar”执行,不需要设置类路径,不需要部署额外的jar子。

copy comm.jar \jdk1.6\jre\lib\ext
copy win32com.dll \jdk1.6\bin
copy javax.comm.properties \jdk1.6\jre\lib

并通过命令行启动your.jar:

java -jar your.jar