恐怕这可能不是严格意义上的编程问题,而是我需要清除的更多内容才能继续进行编程。
我只是试图编写一个程序进行串行通信,特别是使用javax.comm API,并且我在Win7上获得了成功,但是当我在设备上运行任何此类程序时,都没有输出。该设备正在运行Debian 6,并且已安装JDK1.8.0。
为了在Win7上运行我的程序,我需要获取API并将三个魔术文件comm.jar,win32comm.dll和javax.comm.properties放在特定的文件夹中,但是我不知道如何在我的文件夹中执行此操作设备。
有谁知道我是否可以将这三个文件放在任意文件夹中并使用路径环境变量引用它们?
我要运行的代码很简单:
package test;
import java.util.Enumeration;
import javax.comm.*;
public class Test {
public static void main(String[] args) {
Enumeration e = CommPortIdentifier.getPortIdentifiers();
while (e.hasMoreElements()) {
CommPortIdentifier com = (CommPortIdentifier) e.nextElement();
System.out.println(com.getName());
}
}
最佳答案
根据http://reprap.org/wiki/JavaComm#Installation_on_Linux,您需要一些文件:
commapi/jar/comm.jar
commapi/lib/libLinuxSerialParallel.so
commapi/lib/libLinuxSerialParallel_g.so
commapi/docs/javax.comm.properties
“将jar文件放在您的类路径中的某个位置(例如usr / java / j2sdk / jre / lib / ext之类的位置)中,.so文件放在Java的负载库路径中(在我的系统中位于/ usr / java / j2sdk / jre / lib / i386)和javax.comm.properties“ java可以找到它的地方”-在我的系统上,这似乎意味着从运行项目的目录创建指向它的符号链接,但是必须是更简单的方法。”
如果二进制文件在您的系统上不起作用,则可能需要查找用于构建库的源,然后自己进行编译。
有关如何自己执行此操作的线索:
http://www.phidgets.com/phorum/viewtopic.php?f=39&t=3750
https://github.com/rxtx/rxtx.git