Javac documentation cung cấp tất cả thông tin cần thiết. Tuy nhiên, có thể hữu ích khi sử dụng Ant hoặc Maven để xây dựng dòng lệnh.
This trang cung cấp một ví dụ hay về cách sử dụng javac đầu tiên và sau đó là Ant để xây dựng một dự án đơn giản.
Đây là một ví dụ về dự án và cách được biên dịch bằng javac.
Cấu trúc cây của dự án là:
.
├── build
└── src
├── attacks
├── drivers
│ └── Driver.java
└── exceptions
└── MyException.java
Có hai thư mục đặc biệt - build
để chứa các lớp học biên soạn và src
để chứa file nguồn (có thể là trong thư mục con khác nhau - bao bì).
Lệnh sau đây biên dịch toàn bộ dự án và đặt kết quả vào thư mục build
.
javac -sourcepath src -d build src/**/*.java
-sourcepath src
chỉ định thư mục src
là nơi tất cả nguồn có thể được trình biên dịch tìm thấy. Các tùy chọn -d build
cho trình biên dịch biết nơi đặt các tệp được biên dịch.
Tùy chọn src/**/*.java
cho trình biên dịch biết tệp nào thực sự biên dịch. Trong trường hợp cụ thể này, nó yêu cầu javac nhìn xuống hai cấp độ và chọn tất cả * .java ở cấp đó.
Nếu có *.java
tệp ở các cấp khác nhau hơn danh sách tệp cần được chỉ định. Đối với điều này, người ta có thể tạo ra danh sách như một tập tin bên ngoài và vượt qua các tập tin này như trong tùy chọn đầu vào cho javac
.
Sau đây là cách này có thể được thực hiện dưới Linux/Unix:
find -name "*.java" > source.txt
Lệnh trên sẽ tạo ra source.txt tập tin có chứa đường dẫn đầy đủ cho các file java * được tìm thấy.Ví dụ này nó chứa:
./src/drivers/Driver.java
./src/exceptions/MyException.java
Để biên dịch dự án với danh sách các file nguồn đỏ mặt vào source.txt
, lệnh sau đây có thể được sử dụng:
javac -d build @source.txt
Xin lưu ý rằng @source.txt
quy định tại các kết thúc cho trình biên dịch biết nơi tìm kiếm danh sách các tệp nguồn. Cũng xin lưu ý rằng tùy chọn -sourcepath
có thể được bỏ qua.
Đây là cách cấu trúc thư mục thay đổi sau khi chạy lệnh trên.
.
├── build
│ ├── drivers
│ │ └── Driver.class
│ └── exceptions
│ └── MyException.class
└── src
├── attacks
├── drivers
│ └── Driver.java
└── exceptions
└── MyException.java
Có thể quan sát thấy thư mục build
hiện chứa các tệp lớp được biên dịch trong các gói tương ứng.
Và nếu bạn muốn chạy, giả sử, ví dụ: Driver
có phương thức main
, lệnh sau sẽ thực hiện chương trình.
java -cp .:build:**/*.class drivers.Driver
Xin lưu ý rằng tập tin tách :
(dấu hai chấm) được sử dụng dưới Unix, Windows thay đổi nó để ;
(dấu chấm phẩy).
Nếu trong 'argfile' bạn có danh sách tất cả các tệp cần biên dịch, bạn có thể chạy [' javac @ argfile'] (http://docs.oracle.com/javase/7/docs/technotes/tools/ windows/javac.html # commandlineargfile). Nếu bạn đang sử dụng libs khác, bạn phải thêm classpath chúng. – Alberto
Khi tôi làm một cái gì đó như chỉnh sửa tên đường dẫn lớp (trong trường hợp này), nơi tôi nên làm điều đó và làm thế nào? Tôi đã nghe nói về điều đó đang được thực hiện bên trong tập tin manifest, tuy nhiên tôi biết rằng nó có thể được thực hiện trong các thiết lập hệ điều hành là tốt. – OKGimmeMoney
Bạn có thể thêm phụ thuộc classpath thông qua tùy chọn '-classpath' như:' javac -classpath \ examples; \ lib \ Banners.jar \ examples \ greetings \ Hi.java'. Xem http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html và http://docs.oracle.com/javase/7/docs/technotes/tools/windows/ classpath.html. – Alberto