java 调用JRuby

1.core

package vanilla;

import org.jruby.embed.ScriptingContainer;

public class HelloWorld {

    private HelloWorld() {
        ScriptingContainer container = new ScriptingContainer();
        container.runScriptlet("puts 'Hello World!'");
    }

    public static void main(String[] args) {
        new HelloWorld();
    }
}




2.JSR223

package redbridge;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class Jsr223HelloWorld {

    private Jsr223HelloWorld() throws ScriptException {
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("jruby");
        engine.eval("puts 'Hello World!'");
    }

    public static void main(String[] args) throws ScriptException {
        new Jsr223HelloWorld();
    }
}



3.BSF

package azuki;

import org.apache.bsf.BSFException;
import org.apache.bsf.BSFManager;

public class BsfHelloWorld {
    private BsfHelloWorld() throws BSFException {
        BSFManager.registerScriptingEngine("jruby", "org.jruby.embed.bsf.JRubyEngine", new String[] {"rb"});
        BSFManager manager = new BSFManager();
        manager.exec("jruby", "<script>", 0, 0, "puts 'Hello World!'");
    }

    public static void main(String[] args) throws BSFException {
        new BsfHelloWorld();
    }

}


具体请参看  https://github.com/jruby/jruby


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
java.lang.NoClassDefFoundError: org/jruby/javasupport/proxy/InternalJavaProxy是一个Java错误,表示在运行时找不到指定的类。这个错误通常发生在类路径配置错误或者缺少所需的依赖项的情况下。 解决这个错误的方法有以下几种: 1.检查类路径配置:确保所需的类或依赖项在类路径中正确配置。可以通过以下命令查看当前的类路径配置: ```shell echo $CLASSPATH ``` 如果类路径配置不正确,可以使用以下命令来设置类路径: ```shell export CLASSPATH=/path/to/your/classpath ``` 请将"/path/to/your/classpath"替换为正确的类路径。 2.检查依赖项:确保所需的依赖项已经正确地包含在项目中。可以通过以下方式检查依赖项: - 如果使用Maven进行构建,可以检查项目的pom.xml文件,确保所有依赖项都正确声明。 - 如果使用Gradle进行构建,可以检查项目的build.gradle文件,确保所有依赖项都正确声明。 - 如果手动管理依赖项,可以检查项目的lib目录,确保所有依赖的jar文件都存在。 3.检查编译和运行环境:确保编译和运行环境的一致性。如果使用不同版本的Java编译和运行代码,可能会导致类定义不匹配的错误。请确保编译和运行代码的Java版本一致。 4.检查类加载器:如果使用自定义类加载器加载类,可能会导致类路径配置错误或者类加载器本身存在问题。请检查类加载器的实现,并确保它正确加载所需的类。 5.检查类文件:如果类文件本身存在问题,可能会导致NoClassDefFoundError错误。请确保类文件存在,并且没有被损坏或者被修改。 这些是解决java.lang.NoClassDefFoundError错误的常见方法。根据具体情况,您可以尝试其中的一种或多种方法来解决该错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值