我有一个名为Listenermain.java
的Java类,它依赖于外部库,该类是下面的s。
import Luxand.FSDK;
import php.java.bridge.JavaBridgeRunner;
public class Listenermain {
public static final String JAVABRIDGE_PORT = "1699";//8080
static final JavaBridgeRunner runner
= JavaBridgeRunner.getInstance(JAVABRIDGE_PORT);
/**
* @param args the command line arguments
*
*/
public static void main( String[] args ) {
// TODO code application logic here
try {
System.loadLibrary("facesdk");
int res = FSDK
.ActivateLibrary("pZo9jhbhbybgvbh");
FSDK.Initialize();
FSDK.SetFaceDetectionParameters(true, true, 384);
FSDK.SetFaceDetectionThreshold(5);
if (res == FSDK.FSDKE_OK) {
System.out.printf("FaceSDK activated", "FaceSDK activatedn");
} else {
System.out.printf("Error activating FaceSDK: ", res + "n");
}
} catch (java.lang.UnsatisfiedLinkError e) {
System.out.printf("exception ", e.getMessage());
}
try {
runner.waitFor();
} catch (Exception ex) {
System.out.printf("Error: ", ex.getMessage() + "n");
}
// System.exit(0);
}
}
我使用以下cmd行语法编译我的类
javac -classpath ".;C:UsersdaviestobialexWorkareaopenshiftmatcherlibsJavaBridge.jar;C:UsersdaviestobialexWorkareaopenshiftmatcherlibsFaceSDK.jar;C:UsersdaviestobialexWorkareaopenshiftmatcherlibsjna.jar" Listenermain.java
它不会吐出任何错误,但是当我尝试使用此语法再次通过命令行界面运行代码时
`java -classpath . Listenermain`
我收到以下错误
线程"main"java.lang.NoClassDefFoundError中的异常:php/java/bridge/JavaBridgeRunner at Listenermain。(听众主.java:19) 原因:java.lang.ClassNotFoundException: php.java.bridge.JavaBridgeRunner
所以我很困惑为什么Listenermain.class
没有使用我指定的依赖项进行编译。
运行程序时,还需要指定类路径以解析类依赖关系。
尝试如下:
java -classpath ".;C:UsersdaviestobialexWorkareaopenshiftmatcherlibsJavaBridge.jar;C:UsersdaviestobialexWorkareaopenshiftmatcherlibsFaceSDK.jar;C:UsersdaviestobialexWorkareaopenshiftmatcherlibsjna.jar" Listenermain