使用java节点初始化java方法时出现问题

使用java节点初始化java方法时出现问题,java,node-java,Java,Node Java,我不是java运动员,但我正在努力学习如何使用NodeJava。我试着运行npm java和gethub node java上列出的一个示例,但它们不起作用。我认为我的方法没有在node.js脚本中正确初始化。我在Windows10笔记本电脑上使用JDK/JRE1.8。下面是我的简单代码示例。任何帮助都将不胜感激 var Test = java.import("com.sample.SearchQueryRulesFromTable"); var result = Test.SearchQue

我不是java运动员,但我正在努力学习如何使用NodeJava。我试着运行npm java和gethub node java上列出的一个示例,但它们不起作用。我认为我的方法没有在node.js脚本中正确初始化。我在Windows10笔记本电脑上使用JDK/JRE1.8。下面是我的简单代码示例。任何帮助都将不胜感激

var Test = java.import("com.sample.SearchQueryRulesFromTable");

var result = Test.SearchQueryRulesFromTable("C1", "P1");
console.log(result);
节点java中的错误

nodeJavaBridge.js:233
return java.newInstanceSync.apply(java, args);
                            ^
 TypeError: Could not find method
"com.sample.SearchQueryRulesFromTable(java.lang.String,   
java.lang.String)" on class "class com.sample.SearchQueryRulesFromTable".
Possible matches:  
public com.sample.SearchQueryRulesFromTable() at Error (native)
at javaClassConstructorProxy….
以下是我的java代码的一部分:

...
public class SearchQueryRulesFromTable {
...
public static final void main(String[] args) {...
javap的结果

Compiled from "SearchQueryRulesFromTable.java
public class com.sample.SearchQueryRulesFromTable {
  public com.sample.SearchQueryRulesFromTable();
    descriptor: ()V

  public static final void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
}   
@AlphaVictor我尝试使用似乎不起作用的节点java构造调用main方法。我不知道我做错了什么。以下是SearchQueryRulesFromTable中的主要方法:

ItemSearch  item1 = new ItemSearch();

item1.setSearchCustomer(args[0]);
item1.setSearchItem(args[1]); 
使用:

java.callStaticMethodSync("com.sample.SearchQueryRulesFromTable", 
"ItemSearch(item1)","C1", "P1", function(err, results) {    
if(err) {console.error(err); 
javaLangSystem.out.printlnSync('test complete! '+ results);return;}   
错误:

C:\Users\rdouglas\AppData\Roaming\npm\node_modules\NewProjects\08-
egilerapp1\classes>node test.js
(node) sys is deprecated. Use util instead.
C:\Users\rdouglas\AppData\Roaming\npm\node_modules\NewProjects\08-
egilerapp1\classes\test.js:14
var result = 
java.callStaticMethodSync("com.sample.SearchQueryRulesFromTable",  
 "ItemSearch","C1", "P1")
              ^
错误:

Could not find method "ItemSearch(java.lang.String, java.lang.String)" on
class "class com.sample.SearchQueryRulesFromTable". No methods with that
name.
at Error (native)
at Object.<anonymous>
(C:\Users\rdouglas\AppData\Roaming\npm\node_modules\NewProjects\08-
egilerapp1\classes\test.js:14:19)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:139:18)
at node.js:968:3
在上找不到方法“ItemSearch(java.lang.String,java.lang.String)”
类“class com.sample.SearchQueryRulesFromTable”。没有办法
名称
错误(本机)
反对。
(C:\Users\rdouglas\AppData\Roaming\npm\node\u modules\NewProjects\08-
egilerapp1\classes\test.js:14:19)
在模块处编译(Module.js:409:26)
在Object.Module.\u extensions..js(Module.js:416:10)
在Module.load(Module.js:343:32)
在Function.Module.\u加载(Module.js:300:12)
位于Function.Module.runMain(Module.js:441:10)
启动时(node.js:139:18)
在node.js:968:3
此错误告诉您,您试图在类
SearchQueryRulesFromTable
上调用一个构造函数,该类接受两个
String
参数。该类上没有定义此类构造函数

您的代码试图在此处调用此不存在的构造函数:

SearchQueryRulesFromTable("C1", "P1");
根据您尝试执行的操作,您可能需要在
SearchQueryRulesFromTable
中调用
main
方法,并向其传递
String[]

SearchQueryRulesFromTable("C1", "P1");