this tutorial. を使用してJNI helloworldプロジェクトを作成しようとしました。残念ながらjava -Djava.library.path="C:/Users/Philipp/Desktop/jni" HelloWorld
でプログラムの開発を呼び出そうとした後、私は次のエラーメッセージを取得:このタイプのエラーとstackoverflowの上のいくつかの質問がありますJava JNI - AMD 64ビットプラットフォームでIA 32ビット.dllをロードできない
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\Philipp\Desktop\jni\helloworld.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at HelloWorld.<clinit>(HelloWorld.java:3)
を、残念ながら解決策のどれも私のために働いていません。
私はJDK 64ビットを使いたいので、64ビットマシンのCコードをコンパイルする必要があります。 gcc -shared HelloWorld.c -I"C:/Program Files/Java/jdk1.8.0_121/include" -I"C:/Program Files/Java/jdk1.8.0_121/include/win32" -o libhelloworld.dll -m64
次のエラーにつながる:私は-m64
キーワードを使用してみました
HelloWorld.c:1:0: sorry, unimplemented: 64-bit mode not compiled in
#include <jni.h>
^
私はそれが実行して取得するためにしなければならないのですか?
これまでJavaでプログラミングしてきただけなので、私はC言語の世界全体には全く新しいものです。私はcygwinでツールチェーンをダウンロードし、C:\ cygwin64上のフォルダにC:\ cygwin64 \ binにある多くのexeファイルを持っています。 cygwin64を使って.cファイルをコンパイルするにはどうすればいいですか? – Vilib
cygwinのセットアップをもう一度実行してください。使用可能なパッケージが表示されたら、x86_64-w64-mingw32ツールチェーンとパッケージを選択します。もう一つの解決策は、簡単なものとパックマンであるパックマンが付属しているmsys2です。 Cygwin自体はコンパイラではありません! 'GCC'ツールチェーンが付属しています。 C世界はすごく気に入っていて、ちょっとした時間が必要です。あなたは完璧です。 –