2013-02-27 51 views
9

sự khác biệt trong cách gọi tùy chọn -classpath từ javac và từ javaJavac vs Java trong classpath tùy chọn

ví dụ là gì:

javac -classpath MyJar.jar GetJar.java 
java -classpath MyJar.jar:. GetJar 

nó hoạt động cũng như:

javac -classpath MyJar.jar GetJar.java 
java GetJar 

Vì vậy, về cơ bản, nơi mà các-classpath đầu tiên liên quan đến javac cần phải có mặt ở đó, mặt khác trong dòng lệnh java nó có thể là op tional. Tại sao? Bạn có biết trong trường hợp nào nó sẽ là bắt buộc. Và nhiều hơn nữa nói chung tác dụng của -classpath được gọi là bởi javac và những gì là hiệu ứng của -classpath được gọi là java.

Xin cảm ơn trước.

Trả lời

10

Một là đường dẫn lớp được sử dụng để biên dịch. Khác là classpath được sử dụng để chạy. Và họ làm không phải giống nhau. Tập các lớp cần thiết cho các quá trình biên dịch là tất cả các lớp được tham chiếu bởi mọi lớp đang được biên dịch. Trong khi JAR thời gian chạy của bạn có thể gọi một lớp độc lập với một phương thức chính trống và không phụ thuộc.

Chỉ cần nhớ rằng ở các phụ thuộc lớp thời gian chạy được giải quyết động, hay còn gọi là lớp chỉ khi cần (đây là lớp tổng quát, khởi động và hệ thống là luôn được tải).

+0

OK, vì vậy nếu tôi khai báo một đoạn mã như: if (scan.nextInt()> 10) new OtherClass(); chỉ khi scan.nextInt() lớn hơn 10, OtherClass sẽ được nạp – Rollerball

+0

Trên thực tế không, bất kỳ tham chiếu đến một lớp 'B' trong lớp khác' A' sẽ tự động khiến lớp 'B' được nạp (ngay cả khi nó không phải là trực tiếp sử dụng do logic điều kiện). – Perception

1

Tài liệu này chứa câu trả lời cho câu hỏi của bạn

http://docs.oracle.com/javase/1.4.2/docs/tooldocs/windows/javac.html

sử dụng -classpath mỗi khi phải tốn rất nhiều công việc thời gian rất. Thay vào đó, hãy sử dụng các biến môi trường (nếu bạn đang xử lý một gói như Java Mail)

classpath được sử dụng để biên dịch. Javac là trình biên dịch Java, nơi nó chuyển đổi mã của bạn thành mã byte.

Khi nói đến java, nó được sử dụng để chạy tệp/tệp Java của bạn.

+1

Sửa liên kết đến trang web oracle. – nbro

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