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

时间:2015-06-12 11:07:02

标签: java swing jruby

我有一个简单的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版

1 个答案:

答案 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