Для запуску файлу класу Java із командного рядка синтаксис:
java -classpath /path/to/jars <packageName>.<MainClassName>
де packageName (зазвичай починається з будь-якого comабо org) - це назва папки, в якій присутній файл вашого класу.
Наприклад, якщо ваше основне ім’я класу - це назва програми, а ім’я пакета Java - це com.foo.appваш файл класу, він повинен бути в com/foo/appпапці (окрема папка для кожної крапки), тому ви запускаєте програму як:
$ java com.foo.app.App
Примітка: $вказує підказку оболонки, ігноруйте її під час набору тексту
Якщо у вашому класі немає таких package імені певні, просто працювати як: java App.
Якщо у вас є інші залежності від jar, переконайтеся, що ви вказали параметр classpath за допомогою -cp/ -classpathабо за допомогоюCLASSPATH змінної, яка вказує на папку з вашими файлами jar / war / ear / zip / class . Отже, в Linux ви можете CLASSPATH=/path/to/jarsдодати до команди префікс:, у Windows вам потрібно додати папку до системної змінної. Якщо не встановлено, шлях до класу користувача складається з поточного каталогу ( .).
Практичний приклад
Враховуючи, що ми створили зразок проекту, використовуючи Maven як:
$ mvn archetype:generate -DgroupId=com.foo.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
і ми зібрали наш проект mvn compileв нашомуmy-app/ каталозі, він сформує наш файл класу в target/classes/com/foo/app/App.class.
Для його запуску ми можемо вказати шлях до класу за допомогою -cpабо перейти до нього безпосередньо, перегляньте приклади нижче:
$ 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!
Для подвійної перевірки класу та імені пакета можна скористатися інструментом розбирання файлів класу Java, наприклад:
$ 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[]);
}
Примітка: javap не працюватиме, якщо скомпільований файл був затуманений.