Как создать исполняемую ссылку на файл jar?

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

Я создал эту структуру папок

Testing
  ├──> Instance1
  │      ├──> App.jar
  │      └──> cfg.properties
  ├──> Instance2
  │      ├──> App.jar
  │      └──> cfg.properties
  ├──> Instance3
  │      ├──> App.jar
  │      └──> cfg.properties
  └──> Instance4
         ├──> App.jar
         └──> cfg.properties

Файл cfg.properties отличается для каждой папки, но файлы App.jar — это просто копии .jar, сгенерированные IDE. Проблема в том, что мне нужно вручную заменять каждый .jar каждый раз, когда я вношу какие-либо изменения в оригинал.

Есть ли способ получить что-то вроде ссылки на исходный файл .jar вместо его реальных копий, чтобы все они автоматически обновлялись каждый раз, когда я меняю исходный? (Решение в Windows было бы отличным, но любой трюк Linux также сработал бы для меня)

ваша ОС поддерживает символические ссылки?

karakfa 17.05.2019 17:22

@karakfa Windows? да. Но это не позволит мне выполнить его. Я получаю сообщение «Ошибка: невозможно получить доступ к jarfile App.jar». Хотя в линуксе еще не пробовал

DSantiagoBC 17.05.2019 17:23

не уверен в Windows, расширения могут играть какую-то роль, не уверен; это должно тривиально работать в Linux.

karakfa 17.05.2019 17:30

как у вас проходят тесты? вы используете команду java -jar? Вы можете изменить app.jar, чтобы получить путь cfg в качестве аргумента?

imperezivan 17.05.2019 20:11
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
675
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

вы можете переместить App.jar в новую папку и указать путь app.jar в аргументе classpath java

Testing
  ├──> Jar
  │      ├──> App.jar
  ├──> Instance1
  │      └──> cfg.properties
  ├──> Instance2
  │      └──> cfg.properties
  ├──> Instance3
  │      └──> cfg.properties
  └──> Instance4
         └──> cfg.properties

Тестовый экземпляр 1

    cd  Testing/Instance1
    java -jar -cp ../Jar/App.jar 

таким образом, вам не нужна банка в каждой папке экземпляра

Другие вопросы по теме

Как программно переместить символическую ссылку Linux в другую файловую систему (копию) в C?
Символические ссылки на каталоги меняются на символические ссылки на файлы после отправки и извлечения из Git
Как предоставить «git» доступ к определенным EXE-файлам, не добавляя весь каталог в среду $ PATH?
Зачем использовать «связку пряжи»? Почему бы просто не использовать символическую ссылку в node_modules?
Symlink загружает папку в Laravel Envoyer через скрипт развертывания
Atomic `ln -sf` в python (символическая ссылка перезаписывает существующий файл)
Создание символической ссылки. Данные, присутствующие в буфере точек повторной обработки, недействительны
FileNotFoundException после монтирования папки?
NGINX выдает ошибку 404 после создания символической ссылки
Можно ли создать правило перезаписи/перенаправления .htaccess, которое работает как символическая ссылка?