2015-10-13 1 views
0

У меня проблема с java-компилятором.
папки моего Java проекта выглядит следующим образом:Компилятор Java не скомпилирует все подпапки после первого компиляции

  • основная папка
    • папку доставки
      • Box.java
      • Factory.java
      • FragileBox.java
      • Поставщик.java
    • тест папку
      • Test.java
      • Test2.java
      • Test3.java
      • Test4.java
      • Test5.java
    • DeliveryTest.java

У меня есть 2 упаковки, а также delivery package и test package. Это школьный проект, поэтому нам дали test package, нам пришлось написать delivery package, который был протестирован test package.

DeliveryTest.java выглядит следующим образом:

import java.util.ArrayList; 

import java.util.List; 

import test.*; 

import delivery.*; 

public class DeliveryTest { 

    public static void main(String[] args) { 

     List<Test> tests = new ArrayList<Test>(); 
     tests.add(new Test2()); 
     tests.add(new Test3()); 
     tests.add(new Test4()); 
     tests.add(new Test5()); 

     int level = 1; 

     for (Test test : tests) { 
      if (test.test()) { 
       ++level; 
      } 
     } 
     System.out.println("Az elert szint: " + level); 
    } 
} 

Я действительно не хочу подробно работу и цель кода, я не думаю, что это отношение здесь.
Моя проблема заключается в том, что если я компилирую DeliveryTest.java как javac DeliveryTest.java, он создает файлы классов и успешно компилирует, но: после первого компиляции, когда все файлы классов создаются, я вношу изменения на delivery package, он не будет компилироваться снова, только test package, и после того, как компилятор завершит компиляцию, он просто вернется, когда все пойдет хорошо. Он даже не будет создавать файлы классов снова, если я удалю один из файлов классов из delivery folder. Тем не менее, test package компилируется после первого компиляции, у него нет проблем с этим.
Как я могу достичь этого, я могу скомпилировать пакет , а также после первого компиляции?

Спасибо за любую помощь

+5

Я предлагаю вам использовать инструмент построения, например maven или gradle AND IDE.Таким образом, вы можете редактировать код и нажать кнопку «Запустить», чтобы запустить последнюю версию своего кода. Также 'Debug' отлаживать его и т. Д. –

ответ

2

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

javac DeliveryTest.java delivery/*.java test/*.java 

Если вы не изменяете файлы в тестовом пакете вы можете не использовать последний параметр.

+0

Хорошо, спасибо вам большое за это. Хорошего дня. – Krisztian

Смежные вопросы