与Runnable JAR

时间:2019-01-31 07:54:23

标签: java jdbc jar

我有一个应用程序,该应用程序将依靠第三方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和传递参数外,还有其他想法吗?

1 个答案:

答案 0 :(得分:1)

调用re.exec时,您正在创建一个新进程。由于它是一个新进程,因此您无法共享在另一个进程中定义的连接。

尝试将jar用作库。导入该类,并使它们成为接受连接作为参数的公共方法。例如:

import MyClientsJARMainClass
...
String[] args = { arg1, arg2 };
MyClientsJARMainClass.mainWithConnection(args, connection);

您的客户端在其类中添加了一个这样的方法:

public static void mainWithConnection(String[] args, Connection connection)