Java 将comm.jar添加到我的jar中

Java 将comm.jar添加到我的jar中,java,jar,javax.comm,Java,Jar,Javax.comm,我将comm.jar库添加到.jar中,得到了javax.comm.NoSuchPortException 这个bug是因为我没有将javax.comm.properties和win32com.dll添加到我的jar中吗?如何在清单中添加此文件?Java不支持JAR中的JAR。确保javax.comm包位于应用程序的运行时类路径上的正确方法是添加一个清单,该清单提供了依赖Jar的相对路径,并确保Jar位于正确的位置。有关详细信息,请参见Java教程中的&尤其是 小程序和应用程序还可以使用其他方法

我将
comm.jar
库添加到
.jar
中,得到了
javax.comm.NoSuchPortException


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

Java不支持JAR中的JAR。确保
javax.comm
包位于应用程序的运行时类路径上的正确方法是添加一个清单,该清单提供了依赖Jar的相对路径,并确保Jar位于正确的位置。有关详细信息,请参见Java教程中的&尤其是


小程序和应用程序还可以使用其他方法。使用Java Web Start启动。

复制comm.jar\jdk1.6\jre\lib\ext

复制win32com.dll\jdk1.6\bin

复制javax.comm.properties\jdk1.6\jre\lib

并通过命令行启动.jar:


java-jar您的.jar

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

这应该是可行的,但通常不是一个好主意:

  • 以这种方式安装的内容将由使用该安装运行的所有应用程序共享。它可能会干扰其他应用程序,具体取决于它是什么

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

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

试试看

fatjareclipse插件是一个部署工具,它部署 Eclipse java项目集成到一个可执行jar中

它将条目“buildfatjar”添加到导出向导中。除了 eclipse标准jar导出器引用了类和jar 包含在“Fat Jar”中,因此生成的Jar包含所有需要的 类,可以直接使用“java-jar”执行,无需类路径 必须设置,无需部署其他JAR


jdk1.3
?!?(查看手表)这是什么千禧年?除非我弄错了,否则听起来作者已经成功地将
comm.jar
的类绑定到了自己的
.jar
文件中。我这样说是因为他似乎没有收到
NoClassDefFoundError
,而是在
comm.jar
中定义了一个异常。我认为真正的问题是
win32com.dll
不在库路径上。虽然我可能错了。。。