使用Ubuntu
这是我的代码:
import java.io.*;
import java.net.*;
import se.opendataexchange.ethernetip4j.clx.*;
class PLCServer
{
public static void main(String argv[]) throws IOException
{
// IP address of the ethernet card
String ENBTIP = "192.168.10.14";
DataInputStream socketReader = null;
PrintStream socketWriter = null;
ControlLogixConnector test = new ControlLogixConnector(ENBTIP,44818);
// Debugging code
System.out.println(InetAddress.getByName(ENBTIP).isReachable(10000));
}
}
以下是我编译的方式:
javac -classpath /home/nick/Java/PLC/ethernetip4j-0.2.jar PLCServer.java
没有返回任何错误
这是输出:
Exception in thread "main" java.lang.NoClassDefFoundError: se/opendataexchange/ethernetip4j/clx/ControlLogixConnector
at PLCServer.main(PLCServer.java:13)
Caused by: java.lang.ClassNotFoundException: se.opendataexchange.ethernetip4j.clx.ControlLogixConnector
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 1 more
我在这里错过了什么吗?
答案 0 :(得分:3)
确保在运行代码时也指定了类路径。如果在将所需的所有内容添加到java类路径后仍然遇到问题,请检查那些缺少的类实际上是否在您指定的jar /位置中。您还可以启用一些调试标志,以提供有关类加载等的更多信息。
所以例如......
java -classpath /home/nick/Java/PLC/ethernetip4j-0.2.jar:. PLCServer