Swing 应用程序在启动后立即关闭

Swing application closes right away after launch

我有一个简单的 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 运行环境(build 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 [ Windows8-amd64]

莺版本 1.4.8

这个问题已经存在: JRuby script with Rubeus and Swing exiting once packaged into jar using warble

Add at the bottom of the main script:

event_thread = nil
SwingUtilities.invokeAndWait { event_thread = java.lang.Thread.currentThread }
event_thread.join