1

詳細をまとめるのを手伝ってください。インターネットを何時間もスキャンしましたが、結果は良くありません。

ので、私は持っています:

  1. Delphi で記述された JNI 用の DLL (32 ビット Comp の 32 ビット Delphi から)

  2. 64 ビット MAC 上の Java Web プロジェクト (Tomcat、Spring)

  3. System.out.println(System.getProperty("java.library.path")) は「/tmp」と書き込み、正しい

  4. /tmp には、デルファイの qvs.dll があります

プロジェクトを開始すると、例外が発生します:

java.lang.UnsatisfiedLinkError: no qvs in java.library.path
  1. ライブラリをロードする Java コード:

    System.loadLibrary("qvs")

同じ結果で多くの組み合わせを試しました。試せない理由はただ一つ。64 ビット MAC で 32 ビット DLL を使用できますか?

どうもありがとう。

4

2 に答える 2

6

次の 2 つの理由により、希望どおりに実行することはできません。

  • Windows ライブラリ (.dll ファイル) を Mac (.dylib) で実行することはできません。
  • 64 ビット プロセスから 32 ビット ライブラリを起動することはできません。

したがって、次の 3 つの解決策があります。

  • Windows側ですべてを作成します(とにかく、Macをサーバーに使用するにはどうすればよいでしょうか?)。
  • Delphi XE2 コンパイラ(または FPC コンパイラ)の Mac OS バージョンを使用して、(ソケットを使用して)オブジェクト パスカル コードで小さなサーバー アプリケーションを作成し、プロセス外で 64 ビット Java プロセスからアクセスします。簡単な作業ではありません -このライブラリは無料ではありませんが、役に立つかもしれません
  • または、もちろん、コードを Java またはそのバイト コードに書き直すこともできます。おそらく、Oxygene for JavaまたはFPC JVM バックエンドが役立つかもしれません。
于 2012-07-09T06:37:23.933 に答える
3

Windows DLL は、Mac OS システムでは使用できません (Windows 仮想マシンを除く)。

于 2012-07-09T06:34:29.673 に答える