好吧,我几乎无法在 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”