« 固定小数点数ライブラリを更新(20110102a) | トップページ | 処理落ちしても一定のFPS制御 »

2011年2月 9日 (水)

VirtualBoxでJavaプロセスがハングアップする件の対応策

VirtualBoxでJavaプロセス(java.exe,javaw.exe)がハングアップ(※)する件の対応策が分かったので記録しておく。

※プロセスがCPU使用率を100%近く消費して居座ってしまう。

javaコマンドに-verboseオプションを付けて起動するとログの最後に次のように出力された。

[Loaded sun.java2d.d3d.D3DGraphicsDevice from shared objects file]
OpenGL Warning: State tracker is being re-initialized..

Java2DがDirect3Dデバイスを作成しようとしたところで止まっているのが分かった。

ログテキストを元に"java2d.d3d"で検索したところ、Java2Dシステムプロパティのドキュメントが見付かった。プロパティの設定で対応できそうだった。

  1. 最初に、JavaプロセスがJava2DでDirect3Dを使用しないように-Dsun.java2d.d3d=falseオプションを付けてみた。
  2. 次に、OpenGLを直接使うように-Dsun.java2d.opengl=trueオプションを付けてみた。

結果、どちらでもハングアップしなかった。

とりあえずアプリの動作速度を落とすことがないと思われる後者の方法を選択。

システム環境変数_JAVA_OPTIONSに同オプションを指定して再起動しシステム全体にオプションを反映させればJavaコントロールパネルも普通に開くことができるようになる。

【2011/03/12 追記】

システム環境変数_JAVA_OPTIONSを設定してもブラウザでアプレットが起動しなかった。

Java コントロールパネルの『Java』タブにある『表示(V)...』ボタンを押して『Java Runtime Enviroment 設定』ダイアログを開き、『ユーザ』タブの『ランタイムパラメータ』にオプションを入力する必要がある。

|

« 固定小数点数ライブラリを更新(20110102a) | トップページ | 処理落ちしても一定のFPS制御 »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« 固定小数点数ライブラリを更新(20110102a) | トップページ | 処理落ちしても一定のFPS制御 »