Поделиться JDBC-соединением с Runnable JAR - PullRequest
0 голосов
/ 31 января 2019

У меня есть приложение, которое будет использовать сторонний файл JAR для выполнения некоторого кода, этот JAR был разработан нашим клиентом, нам нужно включить вызов JAR в наше приложение, и они надеются, что мы сможемотправить текущее соединение SQL в качестве параметра для JAR

Не имея предыдущего опыта работы с такого рода сценарием, мы все согласились, что это должно быть довольно просто, но мы упустили из виду тот факт, что метод main только основного классаполучает массив Strings в качестве параметра

Я погуглил голову, но не могу найти аналогичную потребность, это просто не по книгам и невозможно сделать?

ВызовЯ надеялся, что реализация будет выглядеть примерно так:

final Process command = re.exec("java -jar ./MyClientsJar.jar " + arg1 + " " + arg2 + " " + SQLConnection);
      command.waitFor();

Но, конечно, когда мы пытаемся определить основной метод, подобный этому, в исходном коде клиента:

  private void MyClientsJARMainClass(String args[], Connection con){}

Eclipse'sИнструменту экспорта JAR не удается найти основной класс

Любые идеи, кроме отправки аргументов user, url и pass?

1 Ответ

0 голосов
/ 31 января 2019

Вы создаете новый процесс при вызове re.exec.Поскольку это новый процесс, вы не можете поделиться своим подключением, определенным в другом процессе.

Попробуйте использовать jar в качестве библиотеки.Импортируйте класс и сделайте его публичным методом, который принимает соединение в качестве параметра.Например:

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

Ваш клиент добавляет в свой класс такой метод:

public static void mainWithConnection(String[] args, Connection connection)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...