簡體   English   中英

org.jruby.embed.EvalFailedException:(LoadError)沒有要加載的文件

[英]org.jruby.embed.EvalFailedException: (LoadError) no such file to load

我已經使用鶯根據紅寶石代碼創建了jar文件。 jar中的文件結構如下:

core.jar
- - 核心
-------- lib
------------ gui.class
------------ gui.rb

我還有另一個Java應用程序,我想從中運行gui.rb的Gui類中的“ connect”功能。

我試過下面的代碼在Java中:

ScriptingContainer SCRIPTING_CONTAINER = new ScriptingContainer;
// String CORE_JAR_PATH = "core.jar";
String CORE_JAR_PATH = "core.jar!/core/lib";
SCRIPTING_CONTAINER.getLoadPaths().add(CORE_JAR_PATH);
SCRIPTING_CONTAINER.runScriptlet("require 'gui'");

上面代碼的最后一行給了我一個例外:“ LoadError:沒有要加載的此類文件-gui”。 如何調用gui.rb函數?

核心/lib/gui.rb

puts "core was loaded!"

我將Ruby代碼(不使用Warbler或類似的東西) jar -cf core.jar corejar -cf core.jar core

Main.java

import org.jruby.embed.ScriptingContainer;

public class Main {
    public static void main(String[] args) {
        ScriptingContainer container = new ScriptingContainer();
        container.runScriptlet("require './core.jar'");
        container.runScriptlet("require 'core/lib/gui'");
    }
}

編譯為javac -cp jruby-1.7.9.jar Main.java -d build

跑步

然后,我能夠以java -cp jruby-1.7.9.jar:build/ Main身份運行此代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM