Ich habe ein einfaches JNI-Projekt, das kompiliert. Aber wenn ich es ausführe, bekomme ich den folgenden Fehler:Wie zu beheben JNI-Projekt, das nicht ausgeführt wird
Ich musste eine Menge Dinge ändern. Unter Ubuntu mit gcc; es funktioniert:
[email protected]:~/programing/java/jni/HelloJNI$ java -Djava.library.path=. HelloWorld
Hello from C!
[email protected]:~/programing/java/jni/HelloJNI$ ls
ctest.c HelloWorld.class HelloWorld.h HelloWorld.java libctest.so
ich diesen link verwendet es zum Laufen zu bringen.
Also meine Frage ist jetzt kann ich gcc verwenden, um für eine Windows-Architektur zu kompilieren, oder muss ich MinGw installieren, um das zu tun? Danke für die Hilfe aller.
ich gerade bestätigt, dass dies mit mingw-64 arbeitet
C:\Users\sansari\Downloads\x86_64-w64-mingw32-gcc-4.8.0-win64_rubenvb\mingw64\java>gcc -o ctest.dll -shared -I"%JAVA_HOME%\include" -I"%JAVA_HOME%\include\win32" ctest.c -m64
C:\Users\sansari\Downloads\x86_64-w64-mingw32-gcc-4.8.0-win64_rubenvb\mingw64\java>ls
HelloWorld.class HelloWorld.h HelloWorld.java ctest.c ctest.dll
C:\Users\sansari\Downloads\x86_64-w64-mingw32-gcc-4.8.0-win64_rubenvb\mingw64\java>java HelloWorld
Hello from C!
Welche Optionen sind Sie für 'javac' mit? Entspricht die Java-Version der VM, auf die Sie beim Kompilieren ausgerichtet sind? – Michael
Ich habe einfach javac HalloJNI.java verwendet, und ja die VM und Java sollten übereinstimmen. Ich mache das auf einem Laptop, der kein Java hat. Ich habe gerade JDK installiert und MinGw verwendet, um den c-Teil zu kompilieren. – user3326293
Zu Ihrer neuen Frage. Sie können einen beliebigen Compiler verwenden, der Windows-Binärdateien erzeugen kann. MinGW ist ein [Port der GNU Compiler Collection (GCC), einschließlich C, C++, ADA und Fortran Compiler] (http://mingw.org/). – SubOptimal