Để chạy tệp lớp Java từ dòng lệnh, cú pháp là:
java -classpath /path/to/jars <packageName>.<MainClassName>
nơi packageName (thường bắt đầu bằng comhoặc org) là tên thư mục nơi tệp lớp của bạn hiện diện.
Ví dụ: nếu tên lớp chính của bạn là Ứng dụng và tên gói Java của ứng dụng của bạn là com.foo.app, thì tệp lớp của bạn cần phải nằm trong com/foo/appthư mục (thư mục riêng biệt cho mỗi dấu chấm), vì vậy bạn chạy ứng dụng của mình dưới dạng:
$ java com.foo.app.App
Lưu ý: $đang chỉ ra dấu nhắc trình bao, hãy bỏ qua nó khi nhập
Nếu lớp học của bạn không có bất kỳ packagetên xác định, chỉ đơn giản là chạy như: java App.
Nếu bạn có bất kỳ phụ thuộc jar nào khác, hãy đảm bảo rằng bạn đã chỉ định tham số classpath của mình bằng -cp/ -classpathhoặc sử dụng CLASSPATHbiến trỏ đến thư mục có các tệp jar / war / ear / zip / class của bạn . Vì vậy, trên Linux, bạn có thể đặt tiền tố lệnh bằng:, CLASSPATH=/path/to/jarstrên Windows, bạn cần thêm thư mục vào biến hệ thống. Nếu không được đặt, đường dẫn lớp người dùng bao gồm thư mục hiện tại ( .).
Ví dụ thực tế
Vì chúng tôi đã tạo dự án mẫu bằng Maven như:
$ mvn archetype:generate -DgroupId=com.foo.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
và chúng tôi đã biên dịch dự án của mình bằng dir mvn compilecủa chúng tôi my-app/, nó sẽ tạo ra tệp lớp của chúng tôi có trong target/classes/com/foo/app/App.class.
Để chạy nó, chúng ta có thể chỉ định đường dẫn lớp thông qua -cphoặc truy cập trực tiếp vào nó, hãy xem các ví dụ bên dưới:
$ find . -name "*.class"
./target/classes/com/foo/app/App.class
$ CLASSPATH=target/classes/ java com.foo.app.App
Hello World!
$ java -cp target/classes com.foo.app.App
Hello World!
$ java -classpath .:/path/to/other-jars:target/classes com.foo.app.App
Hello World!
$ cd target/classes && java com.foo.app.App
Hello World!
Để kiểm tra lại lớp và tên gói của bạn, bạn có thể sử dụng công cụ tháo gỡ tệp lớp Java, ví dụ:
$ javap target/classes/com/foo/app/App.class
Compiled from "App.java"
public class com.foo.app.App {
public com.foo.app.App();
public static void main(java.lang.String[]);
}
Lưu ý: javapsẽ không hoạt động nếu tệp đã biên dịch đã bị xáo trộn.