Ich habe eine Java-Klasse namens Listenermain.java
, die Abhängigkeiten zu externen Bibliotheken der Klasse a s unten ist.Java-Klasse kompiliert nicht über cmd
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 activated\n");
} 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);
}
}
ich kompilieren meine Klasse mit folgenden auf cmd Zeilensyntax
javac -classpath ".;C:\Users\daviestobialex\Workarea\openshiftmatcher\libs\JavaBridge.jar;C:\Users\daviestobialex\Workarea\openshiftmatcher\libs\FaceSDK.jar;C:\Users\daviestobialex\Workarea\openshiftmatcher\libs\jna.jar" Listenermain.java
und es keine Fehler spucken, aber wenn ich versuche, den Code über die Kommandozeilenschnittstelle wieder mit dieser Syntax laufen
`java -classpath . Listenermain`
ich erhalte den Fehler unter
Exception in thread "main" java.lang.NoClassDefFoundError: php/java/bridge/JavaBridgeRunner at Listenermain.(Listenermain.java:19) Caused by: java.lang.ClassNotFoundException: php.java.bridge.JavaBridgeRunner
So bin ich verwirrt, warum die Listenermain.class
nicht mit den Abhängigkeiten kompiliert wurde, die ich spezifizierte.
Sie müssen auch die abhängigen Bibliotheken Pfad im Startbefehl erwähnen, sonst JVM kann die Abhängigkeit nicht lösen. –