Java и компиляция, когда не используется IDE - PullRequest
2 голосов
/ 16 июня 2011

Я понимаю, что в Java вы вынуждены использовать один файл для каждого класса.

Так что, если у меня есть такие классы, как:

/my_project/main.java
/my_project/classes/user.java
/my_project/classes/other.java

И мой main.java ссылается на пользователя и другиефайлы, как мне скомпилировать это через командную строку?

Если бы у меня были внешние файлы .jar, на которые я ссылался, и я поместил их в определенную папку, как я мог бы также включить это в мою компиляцию?(или есть общее место, где я могу их разместить, где они будут автоматически подобраны, например, как это делает python)

Ответы [ 4 ]

2 голосов
/ 16 июня 2011

Прежде всего плохой стиль - создавать Java-классы, начинающиеся со строчной буквы.

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

Тем не менее, проще всего было бы скомпилировать ваш код:

javac /my_project/main.java /my_project/classes/user.java /my_project/classes/other.java

В любом случае правильное расположение кода должно быть таким, чтобы классы находились в структуре каталогов, соответствующей их пакету.

РЕДАКТИРОВАТЬ : здесь есть довольно хорошее объяснение соглашений http://www.particle.kth.se/~lindsey/JavaCourse/Book/Part1/Java/Chapter05/packagesImport.html

2 голосов
/ 16 июня 2011

для компиляции, вам нужно будет указать каждый исходный файл из папки my_project:

javac classes/user.java classes/other.java main.java

Вы также можете указать jar-файлы для вашего classpath с параметром -cp:

javac -cp myjarfile.jar main.java

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

0 голосов
/ 16 июня 2011

Посмотрите документацию для javac . Вы можете передать несколько исходных файлов или указать исходный каталог.

0 голосов
/ 16 июня 2011

В дополнение к ответу, приведенному выше, вы можете использовать что-то вроде Apache Ant , чтобы упростить настройку вашей сборки (если она усложняется).

...