Как запустить файл класса Java, который находится в другом каталоге?
Путь к каталогу:
c:\home\test\src\com\bsoft\conc
У меня есть моя java-программа в папке src
, и у меня есть файл класса в папке conc
.
Мне нужно запустить мою java-программу из папки home
. При запуске я получаю ошибку:
could not find or load main class
Ответы
Ответ 1
В моей программе com.bsoft.conc - это имя пакета, в котором будет храниться мой файл класса для скомпилированной программы. Если мне нужно запустить это из домашней папки, мы должны указать
java -classpath test\src com.bsoft.conc. "class-file-name"
Это потому, что нам нужно сообщить JVM, где он должен искать файл класса.
поэтому мы должны указать навигацию к src, используя "test\src", а затем
class file location "com.bsoft.conc.class-file-name"
Если вы установили переменную среды в расширенные настройки, она также будет переопределена, если вы укажете путь к классам в cmd
Ответ 2
Задайте путь для этого java файла:
java -cp C:\hello\build\classes com.javahowto.test.HelloWorld
или используя переменные среды и запускать их из любого третьего местоположения с этой машины.
Ответ 3
Настало время прочитать о classpath
(способ сообщить компилятору java, где искать файл класса, который вы намереваетесь запустить). В основном есть два способа установить classpath
- переменная окружения CLASSPATH, имеющая ':' отдельные каталоги в unix и ';' разделенные каталоги в окнах
-
-classpath
или -cp
командная строка arg to javac
command
Обратитесь и прочитайте приведенные ниже ссылки полностью
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html
Ответ 4
У меня была аналогичная проблема, когда я пытался запустить программу Java, которая вызывает метод в классе, который находится в другом каталоге. Я прочитал эту страницу и добавил каталог в мой путь к классам, но я допустил ошибку в использовании "~", что в Bash означает "/home/user/".
Итак, эта команда НЕ работала
java -classpath ~/CurrentDirectory: программа OtherDirectory
Но эта команда сделала
java -classpath/home/user/CurrentDirectory: программа OtherDirectory
Ответ 5
Ответы здесь не касаются проблемы пробелов.
Если в вашем пути есть пробелы, вы должны заключить его в кавычки, иначе появится ошибка:
C:
Program Files
MyProject
src
testpackage
Test.java
target
classes
testpackage
Test.class
package testpackage;
public class Test {
public static void main(String[] args) {
System.out.println("Test");
}
}
java -cp "C:\Program Files\MyProject\target\classes" testpackage.Test