2013-08-25 14 views
12

Có cách nào để biên dịch tệp nguồn Java (*.java) sang một thư mục khác không?Biên dịch tập tin nguồn thành một thư mục khác?

Nếu cấu trúc tập tin gói của tôi là như vậy:

Mathematics -> 
    Formulas -> 
    src -> 
     // source files containing mathematical formulas... 
    bin -> 
     // class files containing mathematical formulas... 
    Problems -> 
    src -> 
     // source files containing mathematical problems... 
    bin -> 
     // class files containing mathematical problems... 

Tôi muốn tách riêng nguồn và lớp tập tin để giữ các thư mục có tổ chức, nhưng tôi đang phải sao chép tất cả các file lớp từ src thư mục vào bin thư mục sau mỗi lần biên dịch.

Có cách nào để đơn giản hóa quá trình này bằng cách biên dịch các tệp lớp học sang một thư mục khác trong lệnh javac không?

+0

Thư mục nào bạn muốn 'bin'? –

Trả lời

21

Yup, hoàn toàn - sử dụng tùy chọn -d để xác định thư mục đầu ra:

javac -d bin src/foo/bar/*.java 

Lưu ý rằng thư mục bạn chỉ định là gốc của cấu trúc đầu ra; các thư mục con có liên quan sẽ được tạo tự động để tương ứng với cấu trúc gói của mã của bạn.

Xem javac documentation để biết thêm chi tiết. Trong trường hợp này, bạn cần phải phát hành một lệnh javac để biên dịch các công thức, và một lệnh khác để biên dịch các vấn đề - có khả năng sử dụng các công thức bin thư mục như một phần của đường dẫn lớp khi biên dịch các vấn đề.

(Bạn có thể muốn xem xét sử dụng một cấu trúc nguồn duy nhất nhưng các gói khác nhau, hãy nhớ đến bạn. Bạn cũng nên cân nhắc sử dụng IDE để ẩn một số sự phức tạp này của bạn) mặc dù nó không thực sự là cứng.)