Скомпилируйте каталог, содержащий классы Java и текстовые файлы, используя код

#java #compilation

#java #Сборник

Вопрос:

Я несколько дней искал способ скомпилировать весь каталог, который содержит не только классы Java. Я понятия не имею, как добавить текстовые файлы и зависимости в процесс компиляции. Кто-нибудь знает способ сделать это? Я знаю, что JavaCompiler — это вещь, но я не могу заставить его это сделать. Я был бы очень признателен, если бы кто-нибудь мог прислать мне несколько примеров кода, используя все, что может делать то, что я хочу.

Комментарии:

1. Если вы делаете это программно на Java, вы должны использовать a FileVisitor , чтобы получить список файлов, которые соответствуют (скажем) *.java , и передать этот список JavaCompiler . (Извините. Не пишу пример кода для вас.)

Ответ №1:

Если вы просто хотите скомпилировать файлы Java в каталоге / папке, вы можете открыть терминал, перейти к определенной папке и запустить

 javac *.java
 

Если вы хотите сделать это из своего java-приложения, вы можете использовать класс Runtime для выполнения команд операционной системы из вашей java-программы.

Например, вы можете создать скрипт bash или файл .bat, поместить туда все свои команды, а затем вызвать

 Runtime run = Runtime.getRuntime();
Process process=runtime.exec("Compile.bat");
 

Вы также могли бы создать pom.xml , и используйте maven для создания вашего проекта (вызывая maven из вашего приложения).

Комментарии:

1. У меня есть это прямо сейчас, но, похоже, это не работает, так как класс не будет компилироваться из-за зависимости, не используемой в процессе компиляции: javac -cp «.;C:UsersDELLDesktopTestjars *» -исходный путь».;C:UsersDELLDesktopTestresources *» C:UsersDELLDesktopTestcomtestMain.java C:UsersDELLDesktopTestcomtestTest.java