Обычно компилятор ожидает исходные файлы и выводит файлы классов в соответствии со структурой пакета.
Если вы не зададите какие-либо параметры -sourcepath
(или -classpath
, если не указан исходный путь), исходные файлы ищутся относительно текущего каталога. Если указан исходный путь, исходные файлы ищутся относительно этого пути (в дополнение к любому файлу, непосредственно указанному в командной строке).
Аналогично, если вы не укажете какие-либо параметры -d
, файлы классов будут помещены в каталоги в соответствии со структурой пакета относительно текущего каталога. Если вы укажете опцию -d
, файлы классов будут размещены относительно каталога, заданного опцией. Здесь будут созданы несуществующие каталоги.
Таким образом, если вы хотите создать вывод в том же дереве каталогов, в котором находятся ваши исходные файлы, обычным способом будет перейти в корень этого дерева (C:\
в вашем случае) и оттуда Позвоните в Javac:
javac -classpath ... -sourcepath . APPC_LU62\Runtime\*.java
(или перечислить только те файлы Java, которые вы на самом деле хотите скомпилировать). В качестве альтернативы, вы можете добавить опции -d C:\
и -sourcepath C:\
, а затем вызывать команду из любого удобного вам места:
javac -classpath ... -sourcepath C:\ -d C:\ C:\APPC_LU62\Runtime\*.java
То же самое справедливо позже для выполнения классов с помощью команды java
: Это также предполагает, что классы в каталогах соответствуют структуре пакета, причем корень является каталогом или файлом jar, указанным в пути к классам. Таким образом, вам придется добавить C:\
к -classpath
для вашего java
вызова.
(Кстати, я бы не использовал корень какого-либо диска в качестве корня иерархии пакетов - лучше переместить все на один каталог вниз.)