この質問は実際のJavaプログラミングではないので、StackOverflowよりもSuperUserに適していると思いましたが、プログラマーは問題に遭遇する可能性が高いです。とにかく、始めましょう私が実際の質問をする前にいくつかの統計で:
ラップトップ:
デスクトップ:
大画面を利用するために、デスクトップからリモートデスクトップを介してラップトップに接続しています。私はラップトップでプログラミングを行っています(移植性の理由から)。両方のコンピューターがアドホックワイヤレスを介して直接接続されているため、他のすべてはリモートデスクトップ上でスムーズかつ高速に実行されます。
唯一の問題はこれです:Java SwingアプリはGUIを正しく表示しません。Java Swingアプリケーションを取得し、Eclipseでデバッグしています。アプリを実行したときに得たものは次のとおりです。
Javaコントロールパネルでも同じ問題が発生するため、デバッグしているGUIアプリケーションに問題はないようです。
私はこれについてグーグルで高低を検索しました。私が解決策に最も近いのは this です。しかし残念ながら、-Dsun.Java2d.nodraw=true
を使用してもまったく効果がありません。
これは、リモートデスクトップでのみ発生します。ローカルで試しましたが、GUIアプリが正しく表示されます。 Java Swingアプリの開発時にリモートデスクトップの使用をやめることができるので、これは私にとって大きな問題ではありません。しかし、誰かがこれに遭遇し、解決策を見つけたかどうかを知りたいです。
PS:関連するすべてのソフトウェア(Eclipse、Java JREなど)は最新バージョンです。
以前は、Eclipseなどのリモートデスクトップ接続を介して特定のアプリケーションを表示するときに、色深度を最高の設定よりも少し低く設定する必要がありました。
考えられるJava VMのバグについては、 この回答)を参照してください 詳細については、Java仮想マシン...を作成できないことに関するエラーメッセージを受け取っていないので、これが当てはまるかどうかは非常に疑わしいですが、それでもチェックする価値があります。 !!
同じ問題が発生し、色深度を変更してもうまくいきませんでした。この:
-Dsun.Java2d.d3d=false
私のために働いているようでした:
デスクトップとRDPクライアントの両方で色を32ビットに変更しただけで、Javaは完璧に見えました。
Java GUIが完全にペイントに失敗する、つまり、メインウィンドウのすべてのコンテンツが古く、リモートデスクトップで実行すると更新されないという状況がありました。
追加する
-Dsun.Java2d.d3d = false
また、私のためにそれを修正しました。
Windowsからログオフし、リモートデスクトップに接続しているユーザーに対して再度ログオンした後(単にリモートDekstopから切断するだけではありません)、同じ問題が修正されました。
コンテナ内にIntelliJまたはEclipseを自動インストールしてDockerイメージを起動しようとしましたが、プライバシー、ライセンス、およびインストールのために常に空白のコンテンツウィンドウが表示されました。これは、RDP接続を介してログオンしたCentOS7マシンで行いました。
次に、ローカルにインストールされたアプリケーションOpenJdkプライバシーツールにも同じ問題があることがわかりました。起動しますが、アプリのコンテンツ、ボタン、テキストが表示されません...空白の白い画面だけです。
私はグーグルで検索し、すべてが役に立たないいくつかの回避策を見つけました。
xhost + initx startx _Java_AWT_WM_NONREPARENTING = 1 export DISPLAY = localhost:10.0(およびこれに関するさまざまなソリューション)
Compizなどをインストールしようとしました......何も役に立ちません!
ソリューション:
RDP経由でCentOSマシンに接続する場合は、最大色を設定します。深さからハイカラー16ビット-それ以上(24ビットでも32ビットでもない)!次に、Swing/Awt/Javaを使用して、このようなアプリ/プログラムのコンテンツが表示されます。このコンテンツには問題があります。