将 comm.jar 添加到我的 jar 中
我将 comm.jar
库添加到 .jar
中,然后得到 javax.comm.NoSuchPortException
。
这个错误是因为我没有将 javax.comm.properties
和 win32com.dll
添加到我的 jar 中吗?如何将此文件添加到清单中?
I add comm.jar
library into my .jar
and I get javax.comm.NoSuchPortException
.
Is this bug because I haven't add javax.comm.properties
and win32com.dll
into my jar? How can I add this file inside manifest?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
Java 不支持 Jars 内的 Jars。确保 javax.comm 包位于应用程序的运行时类路径上的正确方法是添加一个清单,提供依赖 Jar 的相对路径,并确保 Jar 位于找到正确的地方。有关详细信息,请参阅使用清单文件:基础知识 &特别是 Java 教程中的将类添加到 JAR 文件的类路径。
还有其他方法可用于小程序和应用程序。使用 Java Web Start 启动。
Java does not support Jars within Jars. The correct way to ensure the
javax.comm
packages are on the run-time class-path of the application is to add a manifest that provides a relative path to the dependent Jar, and ensure that Jar is in the right place to be found. For details see Working with Manifest Files: The Basics & particularly Adding Classes to the JAR File's Classpath in the Java Tutorial.There are other methods that can be used for applets and apps. launched using Java Web Start.
@Gogoo 的回答说将内容复制到 JVM 安装目录中。
它应该可以工作,但这通常不是一个好主意:
您以这种方式安装的内容将由您使用该安装运行的所有应用程序共享。根据其内容,它可能会干扰其他应用程序。
每次更新 JVM 时,您都必须记住将这些文件复制到新的安装目录中。
IMO,更好的想法是将这些文件放在单独的目录树中,并编写一个包装器脚本来使用类路径和库路径上的文件启动应用程序。和/或查看@Andrew Thompson 的回答。
@Gogoo's answer says to copy stuff into your JVM installation directory.
It should work, but it is generally not a good idea:
The stuff that you install that way will be shared by all applications that you run using that installation. Depending on the what it is, it may interfere with other applications.
Each time you update your JVM, you have to remember to copy those files into the new installation directory.
IMO, a better idea is to put those files in a separate directory tree, and write a wrapper script to launch your application with the files on the classpath and library path. And/or see @Andrew Thompson's answer.
尝试 FatJar。
Try FatJar.
复制 comm.jar \jdk1.6\jre\lib\ext
复制win32com.dll \jdk1.6\bin
复制 javax.comm.properties \jdk1.6\jre\lib
并通过命令行启动 your.jar:
java -jar your.jar
copy comm.jar \jdk1.6\jre\lib\ext
copy win32com.dll \jdk1.6\bin
copy javax.comm.properties \jdk1.6\jre\lib
and start your.jar over command line:
java -jar your.jar