2015-04-03 13 views

Trả lời

4

Họ đều giống nhau, kiểm tra http://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html

-classpath classpath classpath -cp Chỉ định một danh sách các thư mục, tập tin JAR, và ZIP lưu trữ để tìm kiếm cho các file lớp. Các mục nhập đường dẫn lớp riêng biệt với dấu chấm phẩy (;). Chỉ định-classpath hoặc -cp ghi đè bất kỳ cài đặt nào của biến môi trường CLASSPATH .

Nếu-classpath và -cp không được sử dụng và CLASSPATH không được đặt, sau đó đường dẫn lớp người dùng bao gồm thư mục hiện tại (.).

Là sự tiện lợi đặc biệt, phần tử đường dẫn lớp có chứa tên cơ sở * được coi là tương đương với việc chỉ định danh sách tất cả các tệp trong thư mục có phần mở rộng .jar hoặc .JAR. Một chương trình Java không thể cho biết sự khác biệt giữa hai lời gọi.

Ví dụ: nếu thư mục mydir chứa a.jar và b.JAR, thì phần tử đường dẫn lớp mydir/* được mở rộng thành A.jar: b.JAR, ngoại trừ thứ tự tệp jar không được chỉ định . Tất cả các tệp jar trong thư mục được chỉ định , thậm chí là các thư mục ẩn, được bao gồm trong danh sách. Đường dẫn lớp mục nhập bao gồm đơn giản là * mở rộng đến danh sách tất cả các tệp jar trong thư mục hiện tại. Biến môi trường CLASSPATH, trong đó được xác định, sẽ được mở rộng tương tự. Mọi mở rộng ký tự đại diện đường dẫn lớp xảy ra trước khi máy ảo Java được khởi động. Không có chương trình Java nào sẽ thấy các thẻ hoang dã không được mở rộng trừ khi truy vấn môi trường. Ví dụ, bằng cách gọi System.getenv ("CLASSPATH").

2

Hoàn toàn không có sự khác biệt. Nó chỉ cho trình biên dịch Java bạn muốn sử dụng một classpath tùy chỉnh được chỉ định trên đối số dòng lệnh.

Vì vậy, -cp-classpath hoàn toàn tương đương.

Bạn có thể tìm thêm thông tin trên trang javac - Java programming language compiler.

1

Không có. Cả hai đều là các tùy chọn để thiết lập classpath. Xem số man page.

Các vấn đề liên quan