12

wayland バックエンドのみがサポートされているシステムに Java GUI サポートを含めたいと考えています。OpenJDK-7-jre パッケージをインクルードしようとしましたが、X11 依存関係があるようです。「Openjre-8」パッケージを正常にコンパイルし、イメージに含めました。ただし、GUI なしで Java アプリケーションしか実行できません。JAVA SWING API ベースの GUI プログラムを実行しようとすると、次のエラーが表示されます。

Exception in thread "main" java.awt.HeadlessException                           
        at java.awt.GraphicsEnvironment.checkHeadless(Unknown Source)           
        at java.awt.Window.<init>(Unknown Source)                               
        at java.awt.Frame.<init>(Unknown Source)                                
        at java.awt.Frame.<init>(Unknown Source)                                
        at javax.swing.JFrame.<init>(Unknown Source)                            
        at GuiApp1.<init>(GuiApp1.java:25)                                      
        at GuiApp1.main(GuiApp1.java:20)  

ウェイランドで Java GUI プログラムを実行することは可能ですか? どうやってそれをするのですか?

4

4 に答える 4

6

同じことを疑問に思っているときに、この質問を見つけました。Wayland でネイティブに実行したい Java Swing アプリケーションがあります。それが可能かどうかはわかりませんが、他の回答がないことは、そうではないことを示しているようです。

ただし、XWayland で Swing アプリケーションを実行、お好みの Wayland コンポジターでそれを実行することは絶対に可能です。あなたのニーズにはそれで十分だと思うかもしれません。少なくとも、GNOME 3 コンポジターでの初期テストではうまく機能しています。

編集: 検索を続けると、Wayland コミュニティが追加のコンテキストとともに、メーリング リストで同じようにあなたの質問に答えていることがわかりました。他の読者の手間を省くために、この投稿では 2016 年 8 月の状況をまとめています。

于 2016-09-30T06:25:54.540 に答える
0

ウェイランドでアイデアを実行するために cacio-wayland を使用しますが、HiDPI ではまだあいまいです。そして、実行するにはいくつかのステップが必要です:

  1. ビルドする Java ランタイムとして idea ディレクトリの jbr を使用する
  2. いくつかのビルド エラーを修正します。
    • cacio-shared/src/main/java/sun/awt/peer/cacio/KFMHelper.java : shouldNativelyFocusHeavyweight 最後の引数を追加
    • cacio-wayland/pom.xml : include/lib パスを修正
    • pom.xml : maven-install-plugin のバージョンを 3.0.0-M1 に変更します
  3. 実行時エラーを修正: cacio-wayland/src/main/native/wayland.c : display_handle_mode
// is current mode
if ((flags & 0x1) == 0x1) {
  if (width > _display.width)
    _display.width = width;
  if (height > _display.height)
    _display.height = height;
}

プールを作成するための最大表示サイズを取得し、エラーを回避します: wl_shm_pool 無効な幅、高さ、またはストライド

于 2021-11-27T13:38:25.060 に答える