Вам нужно понять пространства имен , если вы хотите по-настоящему понять это.
С помощью include
вы просто включаете заголовочный файл.
С помощью using namespace
вы заявляете, что используете заданное пространство имен, содержащее такие вещи, как cout. поэтому, если вы сделаете это:
using namespace std;
вы используете cout
, вы можете просто сделать
cout << "Namespaces are good Fun";
вместо:
std::cout << "Namespaces are Awesome";
Обратите внимание, что если вы не делайте #include
, вы не сможете использовать ни std::cout
, ни cout
в своих декларациях и т. д., потому что вы не включаете заголовок.
Вы можно добавить переменную для хранения каталога:
export JARDIR=/some/path/to
java -jar $JARDIR/thearchive.jar
Я не уверен, что вы можете сделать это неявно из переменных среды.
Нет, вы не можете.
Запуск jar-файла с -jar
не требует какого-либо механизма пути к классам, поскольку файл jar имеет вид путь к классам.
В качестве альтернативы используйте псевдоним оболочки для запуска jar-файла или небольшого файла сценария.
Согласно Sun :
java -jar app.jar
Чтобы запустить приложение из файла jar, который находится в другом каталоге, нам нужно указать путь к этому каталогу, как показано ниже:
java -jar путь / app.jar
где путь - это путь к каталогу, в котором находится этот app.jar.
Итак, либо укажите путь в «стандартной» переменной среды, либо определите оболочку, которая будет в вашем PATH
Я так не думаю. Если у вас есть jar, указанный в вашем CLASSPATH, вы можете просто вызвать java с указанным основным классом. (т.е. java com.test.Main) В качестве альтернативы вы можете создать псевдоним в оболочке для выполнения команды
alias execJar="java -jar /some/path/to/thearchive.jar"
. Другой альтернативой является создание сценария оболочки для его выполнения.
Сама система Java не дает возможности указать что-то вроде JAR_PATH (список мест для поиска файлов jar). В других приведенных ответах используются возможности оболочки MAC / Unix:
Что может быть полезно заключается в том, чтобы выяснить, почему указание всего пути является проблемой. Это может помочь нам выбрать лучший ответ или, возможно, найти совершенно другое решение вашей проблемы.