使用 Java/Swing 为项目开发 Snap 包

使用 Java/Swing 为项目开发 Snap 包

好吧,我几乎无法在 Google 上搜索到任何有关 Java 和 Swing 的术语“Snap”、“Snappy”或“Snapd”。但我想知道是否可以使用 Snap 运行 Java Swing 应用程序。

当我安装生成的 snap 然后尝试运行应用程序时,它会立即返回而没有任何输出。

我正在使用 x11 插头/接口。

作为一个快速而简单的测试,我还使用了与snapcraft 示例源用简单的“hello world”Swing源代码进行修改。

package oata;

import javax.swing.*;

public class HelloWorld {
    /**
     * Create the GUI and show it.  For thread safety,
     * this method should be invoked from the
     * event-dispatching thread.
     */
    private static void createAndShowGUI() {
        //Create and set up the window.
        JFrame frame = new JFrame("HelloWorldSwing");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Add the ubiquitous "Hello World" label.
        JLabel label = new JLabel("Hello World");
        frame.getContentPane().add(label);

        //Display the window.
        frame.pack();
        frame.setVisible(true);
    }
    public static void main(String[] args) {
        //Schedule a job for the event-dispatching thread:
        //creating and showing this application's GUI.
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}

编辑:好的,所以重新启动已经解决了我关闭 snapd/ubuntu-core 状态的问题。我现在又回到了没有 GUI,没有输出的状态。我已分叉 snapcraft 并修改了示例以供演示

当前 snap 接口输出:

matta@mirkwood:/work/Dev/snapcraft/examples/java-hello-world$ snap interfaces
Slot                 Plug
:firewall-control    -
:home                -
:locale-control      -
:log-observe         -
:mount-observe       -
:network             -
:network-bind        -
:network-control     -
:network-observe     -
:opengl              -
:snapd-control       -
:system-observe      -
:timeserver-control  -
:timezone-control    -
:unity7              -
:x11                 java-hello-world

答案1

IRC 上的 snappy回答了我的问题。

随着 snapd 2.0.3 的发布,该问题已经修复。

Snappy 中的 Launchpad 错误 1574526“x11 插件不允许 getsockname,破坏了 xeyes”

相关内容