Windows中javax.comm.properties的备用位置

Windows中javax.comm.properties的备用位置,java,windows,serial-port,javax.comm,Java,Windows,Serial Port,Javax.comm,我正在构建一个需要安装在Windows计算机上的程序,对于这些计算机,我没有对%JAVA\u HOME%/lib的写入权限 除了%JAVA\u HOME%/lib之外,还有其他地方可以移动javax.comm.properties吗 根据Java COM API常见问题解答: 问:我的应用程序在枚举可用端口时找不到任何端口 端口。 答:为了让Java通信API找到该文件的端口 javax.comm.properties必须位于正确的位置。首选 位置在/lib中。有关详细信息,请参阅安装说明 其他

我正在构建一个需要安装在Windows计算机上的程序,对于这些计算机,我没有对%JAVA\u HOME%/lib的写入权限 除了%JAVA\u HOME%/lib之外,还有其他地方可以移动javax.comm.properties吗

根据Java COM API常见问题解答:

问:我的应用程序在枚举可用端口时找不到任何端口 端口。
答:为了让Java通信API找到该文件的端口 javax.comm.properties必须位于正确的位置。首选 位置在/lib中。有关详细信息,请参阅安装说明 其他位置和更多信息


我在哪里可以找到包含这些备用位置的Sun安装说明?

基于一个家伙在这里说的话:

您可以将javax.comm.properties文件放在放置comm.jar的位置。但要运行该程序,您应该指定指向comm.jar的路径,如下所示:

java -cp <your.class.path>;<path.to>/comm.jar YourProgramThatUsesComm.jar
- lib\
   |- comm.jar
   |- javax.comm.properties
- ext\
   |- win32com.dll
java-cp/comm.jar您使用scomm.jar的程序

希望有帮助

我找到了一种适合我的方法。以下是要求:

  • comm.jar
    必须准确命名为
    comm.jar
    (例如,不是
    comm-2.0.jar
    ),并且必须位于名为
    “lib”
    的目录中的类路径中
  • javax.comm.properties
    也必须具有该确切名称,并且位于与
    comm.jar
    相同的目录中
  • win32com.dll
    必须在
    java.library.path
    中引用
因此,如果您有如下目录设置:

java -cp <your.class.path>;<path.to>/comm.jar YourProgramThatUsesComm.jar
- lib\
   |- comm.jar
   |- javax.comm.properties
- ext\
   |- win32com.dll
然后,您可以在这些目录的根目录中使用以下
java
命令(假设项目的
jar
文件和
YourMainClass
也在
lib
目录中:

java -Djava.library.path=.\ext -cp .\lib\* YourMainClass

这样,当我尝试获取javax/comm/NoSuchPortException的NoClassDefFoundError时,您就不需要再将任何内容放在JRE的
\bin
\lib
目录下了。唯一可以让程序运行但不显示COM端口的方法是将comm.jar放在MyProgram.jar中