我有一个简单的JRuby Swing应用程序,使用Warbler编译并打包到jar。执行jar文件后,Swing框架会立即出现并立即关闭。
include Java
import java.awt.Font
import javax.swing.JFrame
import javax.swing.JPanel
import javax.swing.JLabel
class Main
def initialize
@logInWin = JFrame.new
basic = JPanel.new
font = Font.new "Verdana", Font::PLAIN, 16
loginL = JLabel.new "Login"
loginL.setFont font
basic.add loginL
@logInWin.add basic
@logInWin.pack
@logInWin.setDefaultCloseOperation JFrame::EXIT_ON_CLOSE
@logInWin.setSize 350, 350
@logInWin.setLocationRelativeTo nil
@logInWin.setTitle "Log In"
@logInWin.setVisible true
end
end
Main.new
如何避免此行为?
环境:
OS:赢8
Java(TM)SE运行时环境(版本1.8.0_11-b12)
Java HotSpot(TM)64位服务器VM(版本25.11-b03,混合模式)
jruby 9.0.0.0.rc1(2.2.2)2015-06-10 a0bf3b3 Java HotSpot(TM)64位服务器VM 25.11-b03 on 1.8.0_11-b12 + jit [Windows 8-amd64]
Warbler 1.4.8版
答案 0 :(得分:0)
这个问题已经存在: JRuby script with Rubeus and Swing exiting once packaged into jar using warble
在主脚本的底部添加:
event_thread = nil SwingUtilities.invokeAndWait { event_thread = java.lang.Thread.currentThread } event_thread.join