Компиляция Java-файла из другого каталога - PullRequest
1 голос
/ 21 марта 2011

Я очень новичок в JAVA. Я написал простую программу (в Linux-редакторе VIM), скомпилировал и выполнил ее, все в порядке.

Теперь я переместил этот файл в другой каталог и пытаюсь его скомпилировать (javac Myfile.java), но он выдает сообщение об ошибке как javac-not found.

Может кто-нибудь объяснить, в чем проблема?

Ответы [ 2 ]

1 голос
/ 21 марта 2011

Ваш первоначальный вопрос не был полностью ясен (так как он не содержал полного сообщения об ошибке).

Из вашего комментария:

$ javac Example1.java
javac: file not found: Example1.java
Usage: javac <options> <source files> use -help for a list of possible options

Итак, javac не нашел ваш файл, пример java.

Обычно вам не нужно устанавливать CLASSPATH (используйте export CLASSPATH= в bash), и javac будет искать источник в текущем каталоге. Ваш Example1.java находится в текущем каталоге? (Введите ls и посмотрите на вывод.)

Если нет, вы должны указать путь к этому файлу для javac в качестве параметра ... но на самом деле лучше, просто перейдите в нужный каталог с помощью cd.

Если вы используете пакеты, поместите вашу оболочку в каталог в верхней части иерархии каталогов пакетов и оттуда вызовите компилятор с относительным именем файла.


Правка, так как я вижу следующие вопросы:

  • Компилятор поместит полученные файлы классов в дерево выходных каталогов, заданное параметром -d (или текущим каталогом, если не указан), в соответствии со структурой их пакетов, поэтому убедитесь, что вы ищете их там позже (при вызове программа).
  • Если компилятору нужны другие классы для компиляции файлов, указанных в командной строке, он ищет файлы классов в classpath (заданном параметром -classpath или -cp или переменной среды CLASSPATH или текущий каталог) и исходные файлы в sourcepath (задается параметром -sourcepath или classpath, если не указан sourcepath). Если для необходимого существует и исходный файл более новый, он также перекомпилируется. (Их также ищут в соответствии со структурой пакета.)

    Так что в этом случае вы должны обязательно указать параметр -sourcepath, чтобы компилятор мог найти другие ваши исходные файлы.

1 голос
/ 21 марта 2011

правильно установите путь к классу и путь и проверьте, нормально ли он работает.

USAGE:
SET CLASSPATH=%<CLASSPATH>%
SET PATH=%<PATH_WHERE_JDKS_BIN_LOCATED>%

Переменная среды пути должна указывать накаталог bin в установке jdk ...

USAGE:
Variable : JAVA_HOME
Value : C:\Program Files\Java\jdk1.5.0\bin;.
Variable: PATH
Value : C:\Program Files\Java\jdk1.5.0\lib

System Variables :
Variable : PATH (This will be there already)
Value : %JAVA_HOME%\bin;

Поскольку файл не находится в текущем каталоге, выполните следующие действия в командной строке
$cd home/kiddosr/Kiddo/Java_Programs/ and press enter
home/kiddosr/Kiddo/Java_Programs at this point of time type javac Example1.java

...