Для запуску файлу класу 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
не працюватиме, якщо скомпільований файл був затуманений.