6

1.5 (または 1.5 比較可能モードをオンにした 1.6) でビルドされた Java プログラムは、次の警告を出します。

Java HotSpot(TM) Server VM 警告: ライブラリ mynativelib.so をロードしましたが、スタック ガードが無効になっている可能性があります。
VM はスタック ガードの修正を試みます。ライブラリを「execstack -c」で修正するか、「-z noexecstack」でリンクすることを強くお勧めします。

問題はないように見えますが、明らかにお客様には少し怖いように見えます。7 で Java ビットをビルドしてもこの問題は解決しないと思いますが、Java 7 用の JNI ライブラリをビルドする方法がドキュメントに記載されている場所を確認するのに苦労しています。

では、どこを見ればよいのでしょうか?

4

2 に答える 2

5

ここで答えが見つかりました スタックガード警告を無効にしました(ACF9、JVM 1.7、Linux)

彼は言った

これは Linux 上の Java 7 の HotSpot コンパイラの機能で、C で記述され Java にリンクされたコード (いわゆる Java Native Interface - JNI) が、不適切または悪意を持って記述された場合に VM 全体を停止させないようにします。

于 2013-11-04T03:13:43.040 に答える
2

もう 1 つの可能性は、実行しようとしている Java+JNI アプリケーションが Linux 32 ビット用にコンパイルされていることです。

このような場合、次の 2 つの解決策があります。

  • アプリケーションのソース コードがある場合は、Linux 64 ビットに移植します。
  • そうでない場合は、アプリケーションの Linux 64 ビット バージョンをダウンロードします。
于 2016-01-18T03:34:41.207 に答える