【问题标题】:Calling java class methods in Rhino script在 Rhino 脚本中调用 java 类方法
【发布时间】:2018-02-15 07:01:36
【问题描述】:

我有一个接口方法如下并保存在 Order.java 文件中 和犀牛脚本。

在 rhino 脚本中,我尝试调用接口方法。

犀牛:

var x = Packages.com.data.Order.X;
print(x);

java:

package com.data;

public interface Order 
{
    String X = "Hello, World!";
    void invoke();
}

但它没有打印“Hello world”。

它正在打印

未捕获的 JavaScript 运行时异常:TypeError:无法调用 对象 [JavaPackage com.data.Order] 中的属性调用。它不是一个 函数,它是“对象”。 "

问题说明:如何从rhino脚本调用java接口方法。

【问题讨论】:

  • 嗨,阿富汗,我提到了上面的链接。还是一样的问题
  • 能否请您更新完整的异常堆栈跟踪?
  • 脚本:var x =Packages.com.data.Order.X;打印(x);输出:[JavaPackage com.data.Order.X] 预期:Hello world
  • @Arundhati,尝试在脚本中添加 import 语句,如 import com.data.Order package,然后在没有 Packages 规范的情况下编写此代码,如 - var x = com.data.Order.X;打印(x);

标签: java rhino


【解决方案1】:

这种类型的错误通常意味着 Rhino 引擎没有看到您尝试使用的类。

如果您确实看到 jar 进入了类路径,那么接下来,我会仔细检查 jar 中包含的类是否与引用的完全一致。

您可以通过这样的警报来验证 JS 步骤是否正确地看到了您的类:

警报(com.foo.bar.MyClass);

如果警报表明它是一个 JavaClass,那么它找到了你的类。否则它会说它是一个 JavaPackage。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-30
    • 2012-03-13
    • 2014-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多