問題タブ [javaoptions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JVMオプション-Xss-正確には何をしますか?
ここでは、-Xssは「スレッドスタックサイズの設定」に使用されると書かれていますが、正確にはどういう意味ですか?誰かが私がこれを理解するのを手伝ってもらえますか?
java - _JAVA_OPTIONS を使用して -Xss を設定できません
スタック サイズを増やした場合 (Java オプション -Xss1M) でのみ適切に実行できるアプリケーションがあります。コマンドラインで -Xss1M オプションを使用すると、機能します。このソリューションを Jenkins ジョブに統合するには、スクリプトの変更ではなく、_JAVA_OPTIONS 環境変数アプローチを使用することをお勧めします。
驚いたことに、「export _JAVA_OPTIONS=-Xss1M」と言ってもうまくいきません。一重引用符と二重引用符を使用して、JAVA_OPTS と JAVA_TOOL_OPTIONS も設定しようとしました。結果は常に同じです。特に奇妙なのは、Java がオプションを「拾った」と書いていることですが、効果はありません。
コマンド ライン オプションとして -Xss1M を使用して同じコマンドを実行すると、次のように動作します。
SunOS 5.10 と CentOS 4 の両方のマシンで同じ動作をしています。両方でJDK 6 を使用しています。 doc.10142/e14608/app_orminweblogic.htmを参照し、_JAVA_OPTIONS JAVA_TOOL_OPTIONS と JAVA_OPTS の違いを参照して、_JAVA_OPTIONS の使用例を確認してください。_JAVA_OPTIONS が一部のオプションなどを受け入れないかのような言及は見つかりませんでした。したがって、-Xss でも動作するはずです。私の間違いはどこですか?
更新 1 : コマンド ライン オプションの指定と _JAVA_OPTIONS は実際には同等のものではないと確信しました。-Xss だけでなく、他のオプションも同様です。
Ubuntu 14.04 で Java 7 を使用し、-XshowSettings:all オプションを使用して、オプションが Java の「内部」でどのように表示されるかを確認しました。3 つのコマンドを実行し、それらの出力を比較しました (違いは最初の行にありました)。
$ java -XshowSettings:all -version 2>&1 | 頭-5
$ _JAVA_OPTIONS="-Xms2048m -Xmx2048m" Java -XshowSettings:all -バージョン 2>&1 | 頭-5
$ Java -Xms2048m -Xmx2048m -XshowSettings:all -バージョン 2>&1 | 頭-5
これは、同じオプション -Xms、-Xmx が実際に持っていることを意味しますが、_JAVA_OPTIONS アプローチを使用すると、限られた効果しかありません。同じことが -Xss にも当てはまります。
$ _JAVA_OPTIONS="-Xss1m" java -XshowSettings:all -version 2>&1 | 頭-5
$ java -Xss1m -XshowSettings:all -バージョン 2>&1 | 頭-5
違いは、コマンド ライン オプションで -Xss1m が指定されている場合のみ、「Stack Size: 1.00M」と表示されることです。しかし、なぜ!_JAVA_OPTIONS の下にコマンドラインと完全に同等のものを提供しないのはなぜですか??
更新 2 : http://hg.openjdk.java.net/jdk7/jdk7/hotspot/archive/tip.tar.gzおよびhttp: //hg.openjdk.java.net/jdk7/jdk7/jdk/archive/tip.tar.gzそれぞれ。多くのプリントアウトを挿入し、Java とすべての関連ライブラリ (libjvm.so、rt.jar) をソースからビルドして実行しました。
根本的な原因は、_JAVA_OPTIONS からのオプションが、jdk-9b8c96f96a0f/src/solaris/bin/java_md.c の thr_create() の呼び出しに使用されていない配列 _jvm_args_array に格納されていることです。
スタック サイズを評価しようとする場所があります。これは、ContinueInNewThread(...) からの JNI_GetDefaultJavaVMInitArgs(void *args_) の呼び出しですが、320K に等しいデフォルトのスタック サイズ値を返すだけで、_JAVA_OPTIONS は使用しません。 . _JAVA_OPTIONS の解析は、完全に無意味に見える既に作成されたスレッドで後で行われます。
おそらく関心のある人のために何が起こっているかを説明するために、以下の呼び出しシーケンスを書きました (インデントは呼び出しの深さに対応します)。
現在、OpenJDK にバグを報告する方法を確認しています。OpenJDK がそのような実装を適切に設計されていると見なしたとしても、コマンド ライン ヘルプとドキュメントの両方で、-Xss が _JAVA_OPTIONS からは機能しないことを明確に説明する必要があります。
java - shスクリプトを使用してJAVA_OPTIONSからオプションを削除します
そのため、サーバーを起動するときに使用するスクリプトがいくつかあります。
アクセスして編集できるものもありますが、アクセスも編集もできないものもあります。
私の最後のスクリプトには、次の行があります。
いくつかのオプションを追加するために。JAVA_OPTIONS
しかし、削除したいオプションがいくつかあります(アクセスできない.shに追加されています)
これは私が削除したいオプションです:
最後のスクリプトを編集してそれを達成するにはどうすればよいですか?
java - Java プロセスを実行して、1 つのフォルダーのみを読み書きする
javaプロセスを実行して1つのフォルダのみを読み書きする方法は? VMにはそれを行うオプションがありますか?
java - java コマンドの -agentlib オプションは何をしますか。その中でTakipiAgentを使用しているときにエラーが発生する
-agentlib
誰かがオプションの使用とその内部動作について説明できますか?
より広い視点を与えるために、以下のコマンドを実行しています。
java -agentlib:TakipiAgent MyClass
そして、それは私にエラーを与えています:
NB - これは両方への回答を求めています: 1) 一般的な -agentlib の動作 (2) 発生しているエラーの可能な解決策