2013-05-15 2 views
1

Вот что я получил:Скомпилировать все файлы в src?

 
/myjava/compile.cmd 
/myjava/src/a/HelloWorld.java 
/myjava/src/b/Inner.java 
/myjava/src/b/Inner2.java 
/myjava/bin 

HelloWorld:

 
package a_pack; 

import b_pack.Inner; 
import b_back.Inner2; 

public class HelloWorld { 

    public static void main(String[] args) { 

     System.out.println("Hello, World");  

     Inner myInner = new Inner(); 
     myInner.myInner(); 

     Inner2 myInner2 = new Inner2(); 
     myInner2.myInner(); 

    } 

} 

Inner.java

 
package b_pack; 

public class Inner { 

    public void myInner() { 
     System.out.println("Inner Method"); 
    } 

} 

Inner2.java

 
package b_pack; 

public class Inner2 { 

    public void myInner() { 
     System.out.println("SecondInner"); 
    } 

} 

Теперь то, что я пытаясь сделать это mpile, чтобы я мог бежать.

Я мог бы составить его:

javac -d bin src/a/HelloWorld.java src/b/Inner.java src/b/Inner2.java

Но я хочу использовать общую команду, которая не требует перечисления каждой вложенной папки. Как это сделать?

+0

Создать файл фляги тогда .... – Smit

+0

Вам нужно собрать * все * файлов, которые вы ссылаетесь, не видя пути вокруг этого. –

+1

Вы должны настроить скрипт сборки с помощью ant или maven и позволить этому сделать это за вас. –

ответ

2

Поскольку ваши HelloWorld импорта класса ссылок на Inner и Inner2 классов, вы можете использовать JAVAC sourcepath флаг собрать все три класса:

javac -d bin -sourcepath src src/a/HelloWorld.java 
+0

да, ну, что дает мне «пакет b_pack не существует». http://pastebin.com/pxQJJJyw – dwjohnston

+0

Это странно ... Из какого каталога вы вызываете команду javac? –

+0

Да, вы не создали пакет 'b_pack'. вы создали пакеты 'a.pack' и' b.pack'. Поэтому вам нужно изменить имена пакетов в исходных файлах. В классе HelloWord вы должны иметь пакет 'a.pack' вместо' package a_pack'. В двух других классах вы должны иметь 'package b.pack' вместо' package b_pack'. Надеюсь, поможет. –

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