如何使用warble来打包libgdx和ruby?

我的ruby代码如下

include Java Dir[File.expand_path "#{File.dirname(__FILE__)}/../libs/\*.jar"].each { |x| require x; puts "go"} module LibGDX include_package "com.badlogic.gdx" include_package "com.badlogic.gdx.backends.lwjgl" include_package "com.badlogic.gdx.graphics" end class Game include LibGDX::ApplicationListener @LOG = Game.java.simple_name def create LibGDX::Gdx.app.log(@LOG, "Is a thing") end def resize width, height LibGDX::Gdx.app.log(@LOG, "Resizing game to #{width} by #{height}") end def render LibGDX::Gdx.gl.glClearColor(0, 0, 0, 0) LibGDX::Gdx.gl.glClear(LibGDX::GL20.GL_COLOR_BUFFER_BIT) end def pause LibGDX::Gdx.app.log(@LOG, "Pausing") end def resume LibGDX::Gdx.app.log(@LOG, "resuming") end def dispose LibGDX::Gdx.app.log(@LOG, "disposing") end end listener = Game.new width = 800 height = 600 useOpenglES2 = false; game = LibGDX::LwjglApplication.new(listener, "Game", width, height, useOpenglES2) 

如果我通过jruby运行它,它工作得很好,但是如果我用warble打包它将跳过所有Game类的初始化,并告诉“AL lib:alc_cleanup:1 device not closed”并停止。

有谁知道用jruby和warble构建libGDX项目的正确方法吗?

PS我知道这似乎是一个非常本地化的问题,但我问如何使用jruby和libgdx与我的程序作为一个例子warble …所以我认为这是更广泛的,似乎…仍习惯stackexchange。

我发现libGDX运行在一个独立的线程上,而不是一个warble用来调用jruby解释器的线程。 我所需要做的只是添加一个无限的while循环到主Ruby文件,它的工作原理。 不知何故,甚至在合适的时间closures。

如果有人知道更好的方法来保持线程打开,直到所有线程完成,请让我知道。