java - 指定 Java 通信库的位置

标签 java serial-port javax.comm

是否有解决方法或解决方案必须将 javax.comm.properties 文件和 win32com.dll 文件放在各自的文件夹中?

当我存储如下文件时,我的程序运行正常:
%JAVA_HOME%/jre/lib/ext/comm.jar
%JAVA_HOME%/bin/win32com.dll
%JAVA_HOME%/lib/javax.comm.properties

这种方法效果很好,直到 IT 更改了我们计算机的权限,使我们无法再写入这些文件夹。我希望能够安装我编写的使用串行端口的 Java 程序一次,而无需在每次 IT 决定更新我们的 JVM 时重新安装它。有谁知道有什么方法可以做到这一点吗?

最佳答案

将应用程序的执行与其运行的计算机的配置分离始终是一个好习惯。在您的情况下,第一个任务将是确定您想要存储所需的额外库和配置文件的位置(最好将它们与您的应用程序捆绑在一起)。完成后,您可以配置应用程序以在启动时找到它们:

假设有以下目录树:

myapp
  |
  --lib (archives and shared libraries stored here)
  |
  --resources (configuration files go here)

You could do:

java -Xbootclasspath/a:myapp/lib/comm.jar -cp "myapp/lib/*:myapp/resources" -Djava.library.path="myapp/lib"

您的 JAR 和 DLL 文件将进入 lib 子文件夹,属性文件将进入 resources 子文件夹。

关于java - 指定 Java 通信库的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9489000/

相关文章:

serial-port - 通过注册表,命令行或软件更改COM端口?

python - 串行 ctrl+a 转义序列

objective-c - 在 Xcode 中,如何从不断更新的文本文件中读取数据?

java - 无法使用 javax.comm api 找到端口

java - java 反转alpha值

java - 我的 JPanel 实例是否被处置(为什么?)

java - 如何在不指定其类型的情况下引用我的 Java 枚举

java - 串行端口在 Windows 上写入和读取不起作用

java - 我们可以对不同包名称中的所有 webServies 使用相同的 @HandlerChain 吗?

java - 通过 appengine 上传文件到谷歌云存储