Как запустить файл класса 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

  1. переменная окружения CLASSPATH, имеющая ':' отдельные каталоги в unix и ';' разделенные каталоги в окнах
  2. -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