我有一个应用程序,该应用程序将依靠第三方JAR文件执行一些代码,此JAR由我们的客户开发,我们需要在应用程序中包含对JAR的调用,他们希望我们能够发送当前的SQL连接作为JAR的参数
以前没有使用这种方案的经验,我们都认为这应该很简单,但是我们忽略了这样一个事实,即主类的main方法仅接收String数组作为参数
我已经过了谷歌搜索,但是找不到类似的需求,难道这完全是书本上的而且不可能吗?
我希望实现的呼叫看起来像这样:
final Process command = re.exec("java -jar ./MyClientsJar.jar " + arg1 + " " + arg2 + " " + SQLConnection);
command.waitFor();
但是,当然,当我们尝试在客户端的源代码中定义这样的主要方法时:
private void MyClientsJARMainClass(String args[], Connection con){}
Eclipse的JAR导出工具找不到主类
除了发送用户,URL和传递参数外,还有其他想法吗?
答案 0 :(得分:1)
调用re.exec
时,您正在创建一个新进程。由于它是一个新进程,因此您无法共享在另一个进程中定义的连接。
尝试将jar用作库。导入该类,并使它们成为接受连接作为参数的公共方法。例如:
import MyClientsJARMainClass
...
String[] args = { arg1, arg2 };
MyClientsJARMainClass.mainWithConnection(args, connection);
您的客户端在其类中添加了一个这样的方法:
public static void mainWithConnection(String[] args, Connection connection)