2011-07-21 2 views
132

Nếu bạn có tệp jar được gọi là myJar.jar nằm trong /myfolder và bạn muốn sử dụng lớp có tên là myClass từ đó, bạn làm cách nào để thực hiện nó từ dòng lệnh?Chạy lớp trong tệp Jar

Tôi nghĩ rằng nó sẽ được đi vào thư mục và nói java -cp myJar.jar.myClass nhưng điều đó không hoạt động. Bất kỳ trợ giúp sẽ được đánh giá cao.

+0

'java -cp MyJar.jar myClass' hoạt động tốt cho tôi - bạn có thời gian giả mạo trong dòng lệnh thay vì không gian? –

+0

Bạn có ý gì khi nói rằng bạn muốn 'sử dụng' lớp đó? Có một phương pháp chính mà bạn muốn gọi đặc biệt? – Gevorg

Trả lời

196

Sử dụng java -cp myjar.jar com.mypackage.myClass.

  1. Nếu lớp học không có trong gói thì đơn giản là java -cp myjar.jar myClass.

  2. Nếu bạn không nằm trong thư mục nơi myJar.jar có vị trí, sau đó bạn có thể làm:

    1. Trên nền tảng Unix hoặc Linux:

      java -cp /location_of_jar/myjar.jar com.mypackage.myClass

    2. Trên Windows:

      java -cp c:\location_of_jar\myjar.jar com.mypackage.myClass

+6

Chỉ cần thêm vào nó - trong trường hợp com.mypackage.myClass (trong ví dụ trên) có phụ thuộc vào các lọ khác, hãy chạy nó như sau: java -cp dependsfile1.jar; dependsfile2.jar; c: \ location_of_jar \ myjar.jar com .mypackage.myClass – akjain

+2

Đường dẫn lỗi có thể để xem ra trong trường hợp điều này không hoạt động: hãy chắc chắn đường dẫn đầy đủ của bạn đến lớp của bạn khớp chính xác với những gì trong tệp jar của bạn. Nếu bạn giải nén -l /location-of-jar/myjar.jar, và xem cái gì khác ngoài com/mypackage/myClass, đây là vấn đề của bạn. (Ví dụ, nếu bạn thấy bin/com/mypackage/myClass, bạn nên có cd'ed vào thùng để xây dựng tệp jar của bạn; những gì bạn đã không làm việc.) –

+0

trên một số hệ thống bạn có thể cần phải sử dụng java -cp ./myjar.jar ... –

19

Bạn muốn:

java -cp myJar.jar myClass 

Các Documentation đưa ra ví dụ sau đây:

C:> java -classpath C:\java\MyClasses\myclasses.jar utility.myapp.Cool 
4

Giả sử bạn đang ở trong thư mục nơi myJar.jar tập tin là gì và rằng myClass có một phương pháp public static void main() vào nó:

Bạn sử dụng dòng lệnh sau:

java -cp ./myJar.jar myClass 

đâu:

  1. myJar.jar là trong đường dẫn hiện tại, lưu ý rằng . không nằm trong đường dẫn hiện tại trên hầu hết các hệ thống. Một số đường dẫn đủ điều kiện cũng được ưu tiên ở đây.

  2. myClass là một đầy đủ đường dẫn package đến lớp, ví dụ giả định rằng myClass là trong gói mặc định đó là thực tế xấu, nếu nó là trong một gói lồng nhau nó sẽ là com.mycompany.mycode.myClass.

11

của họ là hai loại tập tin JAR sẵn trong java

  1. Runnable/Executable file jar trong đó có chứa file manifest. để chạy jar Runnable bạn có thể sử dụng Java -jar fileName.jar hoặc java -jar -classpath abc.jar fileName.jar

  2. Simple jar nộp những không chứa file manifest do đó bạn đơn giản chạy lớp chính của bạn bằng cách cho đường đi của nó java -cp ./fileName.jar MainClass