kura上的java swing GUI
我需要帮助在Kura中创建一个显示Swing GUI的包。我正在使用Java和OSGI创建捆绑包。我在树莓上做的 我将此代码放在捆绑包的激活器中:kura上的java swing GUI,java,swing,x11,display,kura,Java,Swing,X11,Display,Kura,我需要帮助在Kura中创建一个显示Swing GUI的包。我正在使用Java和OSGI创建捆绑包。我在树莓上做的 我将此代码放在捆绑包的激活器中: public void activate(ComponentContext componentContext, Map<String,Object> properties) { System.out.println("Sono AstroGUI!!!!"); Runnable runnable = new Runnabl
public void activate(ComponentContext componentContext, Map<String,Object> properties)
{
System.out.println("Sono AstroGUI!!!!");
Runnable runnable = new Runnable() {
public void run() {
createAndShow();
}
};
SwingUtilities.invokeLater(runnable);
}
static void createAndShow() {
JFrame frame = new JFrame("Hello World");
frame.setSize(640,480);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public void激活(ComponentContext ComponentContext,映射属性)
{
System.out.println(“Sono AstroGUI!!!!”);
Runnable Runnable=新的Runnable(){
公开募捐{
createAndShow();
}
};
SwingUtilities.invokeLater(可运行);
}
静态void createAndShow(){
JFrame=newjframe(“你好世界”);
帧设置大小(640480);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
但当我上传捆绑包时,系统返回以下错误:
线程“AWT-EventQueue-0”java.AWT.HeadlessException中的异常:否
设置了X11显示变量,但此程序执行了一个操作
这需要它。在
GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:207)
在java.awt.Window.(Window.java:536)在
Frame.awt.Frame.(Frame.java:420)位于
javax.swing.JFrame.(JFrame.java:225)位于
com.riccardofontanini.astrogui.AstroGUIActivator.createAndShow(AstroGUIActivator.java:56)
在
astrogui.AstroGUIActivator$1.run(AstroGUIActivator.java:47)
在java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)中
位于java.awt.EventQueue.dispatchEventImpl(EventQueue.java:744)
访问$400(EventQueue.java:97)
java.awt.EventQueue$3.run(EventQueue.java:697)位于
java.awt.EventQueue$3.run(EventQueue.java:691)位于
java.security.AccessController.doPrivileged(本机方法)位于
ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
位于java.awt.EventQueue.dispatchEvent(EventQueue.java:714)
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
在
java.awt.EventDispatchThread.PumpeEventsforFilter(EventDispatchThread.java:116)
在
java.awt.EventDispatchThread.PumpeEventsforHierarchy(EventDispatchThread.java:105)
在
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
在
EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
在java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
请帮帮我 一定要确保X11按照前面的建议正确设置。您还可以尝试编辑Kura的启动脚本,以确保在Kura启动时X已就绪。启动脚本位于/opt/eclipse/kura/bin中。Kura在引导时使用的默认脚本是start_Kura_background.sh。编辑此文件并添加以下行:
另外,您使用的是什么版本的Java?我只在完整的Oracle JRE上看过这项工作。我还没有在OpenJDK上尝试EclipseKura+Swing,它在Java嵌入式系统上也不起作用 谢谢
--Dave当然要确保X11按照之前的建议正确设置。您还可以尝试编辑Kura的启动脚本,以确保在Kura启动时X已就绪。启动脚本位于/opt/eclipse/kura/bin中。Kura在引导时使用的默认脚本是start_Kura_background.sh。编辑此文件并添加以下行:
另外,您使用的是什么版本的Java?我只在完整的Oracle JRE上看过这项工作。我还没有在OpenJDK上尝试EclipseKura+Swing,它在Java嵌入式系统上也不起作用 谢谢 --Dave或检查此项或检查此项Hi,(我使用的是eurotech的esf)我将DISPLAY=localhost:0.0放入/opt/eurotech/esf/bin/start\u kura\u debug\u background.sh,这样就解决了显示问题,但是现在还有另一个问题:java.lang.NoClassDefFoundError:无法初始化类sun.awt.X11.XToolkit我认为这是java的问题。。。或者我必须在我的包中打包一些想法…嗨,(我正在使用eurotech的esf)我把DISPLAY=localhost:0.0放在/opt/eurotech/esf/bin/start\u kura\u debug\u background.sh中,这解决了显示问题,但现在还有一个问题:java.lang.NoClassDefFoundError:无法初始化类sun.awt.X11.XToolkit我认为这是java问题。。。或者我必须在我的包裹里装些东西。。。
if ! xset q &>/dev/null; then
echo “Starting X Server...”
su -s /bin/bash -c xinit root& export DISPLAY=:0
echo “X Server started !”
else
echo “X Server already running, DISPLAY variable setted”