タグ付けされた質問 「jvm」

Java仮想マシン(JVM)を使用すると、一連のコンピューターソフトウェアプログラムとデータ構造で、仮想マシンモデルを使用して他のコンピュータープログラムとスクリプトを実行できます。このタグは、JVMが提供するツールや、特定のシナリオでどのように機能するかについての質問に使用します。


3
_JAVA_OPTIONS、JAVA_TOOL_OPTIONS、JAVA_OPTSの違い
私は間の比較持っているのは素晴らしいことだろうと思った_JAVA_OPTIONSとしますJAVA_TOOL_OPTIONS。私は少し探していましたが、何も見つかりません。Stackoverflowで知識を見つけられることを願っています。 JAVA_OPTS完全性のために含まれています。これはJVMの一部ではありませんが、実際には多くの疑問があります。 私が知っていること: これまでのところ、次のことがわかりました。 JAVA_OPTSJDKではなく、他の多くのアプリで使用されます(この投稿を参照)。 JAVA_TOOL_OPTIONSそして_JAVA_OPTIONS代わりに、コマンドラインパラメータの環境変数としてJVM引数を指定する方法です。 少なくともでピックアップされjava、javac 彼らはこの優先順位を持っています: _JAVA_OPTIONS (他を上書きします) コマンドラインパラメーター JAVA_TOOL_OPTIONS (他の人によって上書きされます) 私が知りたいこと 比較しJAVA_TOOL_OPTIONS、公式文書はありますか_JAVA_OPTIONS 間の他の違いがあるJAVA_TOOL_OPTIONSと_JAVA_OPTIONS(優先順位から除きます)。 どの実行ファイルが拾うJAVA_TOOL_OPTIONSと_JAVA_OPTIONS(に加えて、javaとjavac) JAVA_TOOL_OPTIONSおよびに含めることができるものに関する制限_JAVA_OPTIONS 公式ドキュメント に関するドキュメントは見つかりませんでした_JAVA_OPTIONS。のドキュメンテーションはJAVA_TOOL_OPTIONS、違いにあまり光を当てていません: たとえば、埋め込みVMや単にスクリプト内の深いVMでコマンドラインにアクセスしたり変更したりできるとは限らないため、JAVA_TOOL_OPTIONS変数が用意されているため、これらの場合にエージェントを起動できます。... スクリプトの例 これは私がこれを理解するために使用したコードです。コンソール出力はコメントとして含まれています: export JAVA_OPTS=foobar export JAVA_TOOL_OPTIONS= export _JAVA_OPTIONS="-Xmx512m -Xms64m" java -version # Picked up JAVA_TOOL_OPTIONS: # Picked up _JAVA_OPTIONS: -Xmx512m -Xms64m # java version "1.7.0_40" OpenJDK Runtime Environment (IcedTea …
151 java  jvm  jvm-arguments 


9
Java言語で利用できないバイトコード機能
現在、Java言語で実行できないJavaバイトコードで実行できる(Java 6)ことはありますか? 私は両方ともチューリング完全であることを知っているので、「できる」を「大幅に速く/より良くできる、または別の方法でできる」と読みます。 のような追加のバイトコードを考えinvokedynamicています。Javaを使用して生成することはできませんが、特定のバイトコードは将来のバージョン用です。
146 java  jvm  bytecode 

27
JVMをどのようにクラッシュさせますか?
プログラミングスキルについての本を読んでいて、著者がインタビュー対象者に「JVMをクラッシュさせるにはどうすればよいですか」と尋ねました。最終的にすべてのメモリを使い果たす無限のforループを作成することで、そうすることができると思いました。 誰かが何か考えを持っていますか?
144 java  jvm 

7
JVM TimeZoneを適切に設定する方法
Javaプログラムを実行しようとしていますが、OSで定義されているタイムゾーンではなく、デフォルトのGMTタイムゾーンを使用しています。私のJDKバージョンは1.5で、OSはWindows Server Enterprise(2007)です。 Windowsには中央タイムゾーンが指定されていますが、次のプログラムを実行すると、GMT時間になります。 import java.util.Calendar; public class DateTest { public static void main(String[] args) { Calendar now = Calendar.getInstance(); System.out.println(now.getTimeZone()); System.out.println(now.getTime()); } } これが出力です sun.util.calendar.ZoneInfo[id="GMT", offset=0, dstSavings=0, useDaylight=false, transitions=0, lastRule=null] Mon Mar 22 13:46:45 GMT 2010 アプリケーションからタイムゾーンを設定したくないことに注意してください。JVMで使用されるタイムゾーンは、OSで指定されたものである必要があります。(JDKのバージョン1.4およびMicrosoft Server 2003を搭載した他のサーバーでは、この問題は見つかりません)。 どんな考えでも大歓迎です。

8
Javaの変数のメモリアドレス
下の写真をご覧ください。newキーワードを使用してJavaでオブジェクトを作成すると、OSからメモリアドレスが取得されます。 書くout.println(objName)と、「特別な」文字列が出力として表示されます。私の質問は: この出力は何ですか? OSから提供されたメモリアドレスの場合: a)この文字列をバイナリに変換するにはどうすればよいですか? b)整数変数のアドレスを1つ取得するにはどうすればよいですか?

3
Javaメソッド宣言のパラメーターの最大数
Javaのメソッドが持つことができるパラメーターの最大数はいくつですか?なぜですか? 64ビットWindowsシステムでJava 1.8を使用しています。 これに関するStackOverflowのすべての回答は、技術的な制限は理由を指定せずに255パラメータであると述べています。 正確には、静的thisメソッドは255、非静的メソッドは254(この場合は255番目)です。 これはある種の仕様で説明でき、静的に定義されたパラメーターの最大数が許可されているだけだと思いました。 しかし、これはintすべての4バイトタイプでのみ有効でした。longパラメータを使用していくつかのテストを行いましたが、その場合は127個のパラメータしか宣言できませんでした。 Stringパラメータ、試験から推定される許容数Iは、(基準サイズは、Javaで4バイトであるので、それがあってもよい?)255です。 ただし、64ビットシステムを使用しているので、参照サイズは8バイト幅にする必要があります。したがって、Stringパラメーターの場合、longタイプと同様に、最大許容数は127にする必要があります。 この制限はどのように正確に適用されますか? 制限はメソッドのスタックサイズと関係がありますか? 注:これらの多くのパラメーターをメソッドで実際に使用するつもりはありませんが、この質問は正確な動作を明確にすることだけを目的としています。
133 java  jvm 

2
Java:int配列がゼロ以外の要素で初期化されます
JLSによると、int配列は初期化の直後にゼロで埋められる必要があります。しかし、そうではない状況に直面しています。このような動作は、JDK 7u4で最初に発生し、その後のすべての更新でも発生します(私は64ビット実装を使用しています)。次のコードは例外をスローします。 public static void main(String[] args) { int[] a; int n = 0; for (int i = 0; i < 100000000; ++i) { a = new int[10]; for (int f : a) if (f != 0) throw new RuntimeException("Array just after allocation: "+ Arrays.toString(a)); Arrays.fill(a, 0); for (int j …

11
時間に依存するコードをテストするためにJava System.currentTimeMillisをオーバーライドする
System.currentTimeMillisホストマシンのシステムクロックを手動で変更する以外に、コードまたはJVM引数を使用して、で表示される現在の時刻を上書きする方法はありますか? 少し背景: 現在の日付(つまり、月の1日、年の1日など)を中心にロジックの多くを実行する多くの会計ジョブを実行するシステムがあります。 残念ながら、従来のコードの多くは、new Date()またはなどの関数を呼び出しますがCalendar.getInstance()、どちらも最終的にはに呼び出されSystem.currentTimeMillisます。 テストの目的で、今のところ、システムクロックを手動で更新して、テストが実行されているとコードが判断する日時を操作する必要があります。 だから私の質問は: によって返されるものをオーバーライドする方法はありますかSystem.currentTimeMillis?たとえば、そのメソッドから戻る前に、JVMにオフセットを自動的に加算または減算するように指示するには、 前もって感謝します!
129 java  testing  jvm  systemtime 

12
実行時のJavaバージョンの取得
1.6で修正されたJDK 1.5のJavaバグを回避する必要があります。次の条件を使用しています。 if (System.getProperty("java.version").startsWith("1.5.")) { ... } else { ... } これは他のJVMでも機能しますか?これをチェックするより良い方法はありますか?
128 java  jvm 


5
ヒープサイズよりもはるかに多くのメモリを使用しているJava(または正しいサイズのDockerメモリ制限)
私のアプリケーションでは、Javaプロセスで使用されるメモリはヒープサイズよりもはるかに多くなっています。 コンテナーがヒープサイズよりも多くのメモリを使用しているため、コンテナーが実行されているシステムでメモリの問題が発生し始めます。 ヒープサイズは128 MB(-Xmx128m -Xms128m)に設定され、コンテナは最大1 GBのメモリを使用します。通常の状態では、500MB必要です。Dockerコンテナの制限が(たとえばmem_limit=mem_limit=400MB)未満の場合、プロセスはOSのメモリ不足キラーによって強制終了されます。 Javaプロセスがヒープよりもはるかに多くのメモリを使用する理由を説明できますか?Dockerのメモリ制限のサイズを正しく設定するにはどうすればよいですか?Javaプロセスのオフヒープメモリフットプリントを削減する方法はありますか? JVMのネイティブメモリトラッキングからコマンドを使用して、問題に関する詳細を収集します。 ホストシステムから、コンテナーが使用するメモリを取得します。 $ docker stats --no-stream 9afcb62a26c8 CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 9afcb62a26c8 xx-xxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.0acbb46bb6fe3ae1b1c99aff3a6073bb7b7ecf85 0.93% 461MiB / 9.744GiB 4.62% 286MB / 7.92MB 157MB / 2.66GB 57 コンテナーの内部から、プロセスが使用するメモリーを取得します。 $ ps -p 71 -o …
118 java  linux  docker  memory  jvm 

6
「java -cp」と「java -jar」の違いは何ですか?
でJavaアプリケーションを実行しているとの違いは何であるjava -cp CLASSPATHとはjava -jar JAR_FILE_PATH?Javaアプリケーションを実行するために、どちらか一方が他方よりも優先されますか?これらの方法のうち、JVMの方が(マシンリソースの使用状況に応じて)コストが高いのはどれですか。 アプリケーションを実行しようとしたときに、JVMがより多くのスレッドを生成するのはどれですか。
118 java  jar  jvm  classpath 

30
Android java.exeはゼロ以外の終了値1で終了しました[終了]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2年前休業。 この質問を改善する 私は同様のものを調べてみましたが、解決策はありませんでした。以前は問題なくアプリを実行したことがあるのですが、新しいアプリで突然問題が発生し始めました。それを実行しようとすると常に失敗します: Error:Execution failed for task ':app:preDexDebug'. com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files (x86)\Java\jdk1.7.0_67\bin\java.exe'' finished with non-zero exit value 1 コンソールに表示される内容は次のとおりです。 Executing tasks: [:app:assembleDebug] Configuration on demand is an incubating feature. :app:preBuild UP-TO-DATE :app:preDebugBuild UP-TO-DATE :app:compileDebugNdk UP-TO-DATE :app:checkDebugManifest :app:preReleaseBuild UP-TO-DATE :app:prepareComAndroidSupportSupportV42200Library UP-TO-DATE :app:prepareDebugDependencies :app:compileDebugAidl UP-TO-DATE :app:compileDebugRenderscript UP-TO-DATE …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.