Я знаю , что есть эта статья на JAR - файлов в Linux , но решение включает в себя некоторые специальные команды Linux я не знаю, и в конечном счете , я хотел бы понять , если я могу получить доступ к JAR (и баночки это зависит от) без необходимости писать скрипт.
Я нахожусь на Windows 7, и мой основной класс Java org.sync.MainEntry
расположен в моем главном названном JAR synchronizer.jar
. Я поместил абсолютный путь всех других JAR-файлов, от которых он зависит, в мою CLASSPATH
переменную в Компьютер -> Расширенные настройки -> Переменные среды. Я даже пытался переместить эти JAR-файлы в ту же папку, что и мой основной JAR-файл.
Но когда я выполняю (в командной строке, перешел на мой основной JAR, с или без других JAR) следующий вызов:
java org.sync.MainEntry
Я получаю ошибку «Невозможно получить доступ к jarfile org.sync.MainEntry». Поэтому я перемещаю ВСЕ банки в одно и то же место и должен сделать
java -cp my_other_jar.jar;my_other_other_jar.jar;synchronizer.jar org.sync.MainEntry
и это, наконец, работает. Или я могу заменить все банки просто *. Но мне нужно либо переместить все JAR-файлы в одно и то же место, либо указать полные пути, и я чувствую, что должен быть способ обойтись без создания сценария оболочки или записи полных путей JAR каждый раз.
Основываясь на статье, упомянутой выше, я рад признать, что CLASSPATH
не видит jar, только классы внутри, но JAR - это архив, может быть, я могу как-то извлечь их и указать CLASSPATH
туда?
Заранее спасибо за вашу помощь!
источник