在JRuby中导入Java类

好奇心

我正在尝试在Jruby中导入Java类

$ ls
bin src

$ ls bin/com/practice
Test.class

$ ls src/com/practice
Test.java

$ cat src/com/practice/Test.java
package com.practice;

public class Test {
    public static String foo(){
        return "Java!!";
    }

    public static void main(String args[]){
        System.out.println(Test.foo());
    }
}
$ jirb -Ibin
jruby-1.7.10 :001 > java_import 'com.pratice.Test'
NameError: cannot load Java class com.pratice.Test
    from org/jruby/javasupport/JavaClass.java:1250:in `for_name'
    from org/jruby/javasupport/JavaUtilities.java:34:in `get_proxy_class'
    from file:/Users/gaurish/.rvm/rubies/jruby-1.7.10/lib/jruby.jar!/jruby/java/core_ext/object.rb:26:in `java_import'
    from org/jruby/RubyArray.java:2409:in `map'
    from file:/Users/gaurish/.rvm/rubies/jruby-1.7.10/lib/jruby.jar!/jruby/java/core_ext/object.rb:22:in `java_import'
    from (irb):1:in `evaluate'
    from org/jruby/RubyKernel.java:1119:in `eval'
    from org/jruby/RubyKernel.java:1519:in `loop'
    from org/jruby/RubyKernel.java:1282:in `catch'
    from org/jruby/RubyKernel.java:1282:in `catch'
    from /Users/gaurish/.rvm/rubies/jruby-1.7.10/bin/jirb:13:in `(root)'

我在这里做错了什么?

Shepmaster

您有许多问题:

  1. 您在irb中拼错了“练习”: java_import 'com.pratice.Test'
  2. 您的课程实际上不在正确的程序包中。您需要添加 package com.practice; 到Java代码。
  3. 您需要在类路径中添加“ bin”,以便JVM可以找到这些类: $CLASSPATH << 'bin'

总之,我能够在IRB中运行此代码:

$CLASSPATH << 'bin'
com.practice.Test.foo
# => "Java!!"

编辑:我未能复制您的package行,那是我的错,不是您的。:-)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Eclipse中导入类/ Java文件

来自分类Dev

在Grails中导入/使用Java类

来自分类Dev

如何在Java类中导入Kotlin数据类

来自分类Dev

如何从Java中的同一包中导入类?

来自分类Dev

如何从默认包中导入默认包内的Java类

来自分类Dev

确保Java类不会从某些包中导入

来自分类Dev

在Scala REPL中导入自定义Java类

来自分类Dev

在jsp文件中导入Java类时出错

来自分类Dev

在Java中导入Scala:奇怪的类和方法显示

来自分类Dev

无法在Android Studio中导入标准的Java库类

来自分类Dev

如何从默认包中导入默认包内的Java类

来自分类Dev

通过绝对路径在Java中导入类

来自分类Dev

无法在 PeriodicWorkRequest 类 (WorkManager) 中导入 java.time.Duration

来自分类Dev

在不同目录中导入类

来自分类Dev

在Android Studio中导入类

来自分类Dev

在不同目录中导入类

来自分类Dev

在Python文件Pycharm中导入Cython类

来自分类Dev

防止在Scala中导入未授权的类

来自分类Dev

在CakePHP中导入自定义类

来自分类Dev

在Gradle中导入其他项目类

来自分类Dev

在Eclipse的显示视图中导入类

来自分类Dev

JavaFX:FXML中导入的类的ClassNotFoundException

来自分类Dev

在IntelliJ IDE中的GSP中导入类

来自分类Dev

在Python内部函数中导入的补丁类

来自分类Dev

如何在Android Studio中导入类?

来自分类Dev

在swift中导入swift链接的objc类

来自分类Dev

如何在反应中导入 Helper 类

来自分类Dev

从 ReactJS 中导入的函数更改类状态

来自分类Dev

JRuby中的“无法加载Java类”