Может исполняемый файл .jar файл быть названным, не имея необходимость использовать его полный путь?

Вам нужно понять пространства имен , если вы хотите по-настоящему понять это.

С помощью include вы просто включаете заголовочный файл.

С помощью using namespace вы заявляете, что используете заданное пространство имен, содержащее такие вещи, как cout. поэтому, если вы сделаете это:

using namespace std;

вы используете cout, вы можете просто сделать

cout << "Namespaces are good Fun";

вместо:

std::cout << "Namespaces are Awesome";

Обратите внимание, что если вы не делайте #include , вы не сможете использовать ни std::cout, ни cout в своих декларациях и т. д., потому что вы не включаете заголовок.

11
задан Alan W. Smith 1 June 2009 в 21:16
поделиться

5 ответов

Вы можно добавить переменную для хранения каталога:

export JARDIR=/some/path/to
java -jar $JARDIR/thearchive.jar

Я не уверен, что вы можете сделать это неявно из переменных среды.

3
ответ дан 3 December 2019 в 09:21
поделиться

Нет, вы не можете.

Запуск jar-файла с -jar не требует какого-либо механизма пути к классам, поскольку файл jar имеет вид путь к классам.

В качестве альтернативы используйте псевдоним оболочки для запуска jar-файла или небольшого файла сценария.

5
ответ дан 3 December 2019 в 09:21
поделиться

Согласно Sun :

java -jar app.jar

Чтобы запустить приложение из файла jar, который находится в другом каталоге, нам нужно указать путь к этому каталогу, как показано ниже: java -jar путь / app.jar

где путь - это путь к каталогу, в котором находится этот app.jar.

Итак, либо укажите путь в «стандартной» переменной среды, либо определите оболочку, которая будет в вашем PATH

3
ответ дан 3 December 2019 в 09:21
поделиться

Я так не думаю. Если у вас есть jar, указанный в вашем CLASSPATH, вы можете просто вызвать java с указанным основным классом. (т.е. java com.test.Main) В качестве альтернативы вы можете создать псевдоним в оболочке для выполнения команды

alias execJar="java -jar /some/path/to/thearchive.jar"

. Другой альтернативой является создание сценария оболочки для его выполнения.

1
ответ дан 3 December 2019 в 09:21
поделиться

Сама система Java не дает возможности указать что-то вроде JAR_PATH (список мест для поиска файлов jar). В других приведенных ответах используются возможности оболочки MAC / Unix:

  1. Установка переменной среды
  2. Установка псевдонима
  3. Возможно использование символьной ссылки (на файл или в каталог).

Что может быть полезно заключается в том, чтобы выяснить, почему указание всего пути является проблемой. Это может помочь нам выбрать лучший ответ или, возможно, найти совершенно другое решение вашей проблемы.

0
ответ дан 3 December 2019 в 09:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: