我将comm.jar
库添加到.jar
我的javax.comm.NoSuchPortException
。
这是因为我没有将javax.comm.properties
和win32com.dll
添加到我的jar中吗?如何在清单中添加此文件?
答案 0 :(得分:3)
Java不支持Jars中的Jars。确保javax.comm
包在应用程序的运行时类路径上的正确方法是添加一个清单,该清单提供相关路径到依赖的Jar,并确保Jar位于正确的位置找到。有关详细信息,请参阅Working with Manifest Files: The Basics&特别是Java Tutorial中的Adding Classes to the JAR File's Classpath。
还有其他方法可用于applet和应用程序。使用Java Web Start启动。
答案 1 :(得分:2)
@ Gogoo的回答是将内容复制到JVM安装目录中。
它应该有用,但通常不是一个好主意:
以这种方式安装的内容将由您使用该安装运行的所有应用程序共享。根据它的不同,它可能会干扰其他应用程序。
每次更新JVM时,都必须记住将这些文件复制到新的安装目录中。
IMO,更好的办法是将这些文件放在一个单独的目录树中,然后编写一个包装器脚本,用类路径和库路径上的文件启动应用程序。和/或看@Andrew Thompson的答案。
答案 2 :(得分:1)
尝试FatJar。
Fat Jar Eclipse插件是一个部署工具,可以部署 将Eclipse java项目合并为一个可执行jar。
它将条目“Build Fat-JAR”添加到导出向导。此外 eclipse标准jar-exporter引用的类和jar是 包含在“Fat-Jar”中,因此生成的jar包含所有需要的内容 类和可以直接用“java -jar”执行,没有类路径 必须设置,不得部署额外的罐子。
答案 3 :(得分:0)
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