Как выполнить программу Java из родительского каталога - PullRequest
0 голосов
/ 26 января 2011

У меня есть такая структура каталогов:

./
 +-- myClass
 |   +-- MainClass.class
 |
 +-- dummy
     +-- DummyClass.class

MainClass содержит public static void main(String args[]) и импортирует dummy.DummyClass.

Я компилирую с помощью простой команды, такой как javac myClass/MainClass.java dummy/DummyClass.java и всеЭто хорошо.Но когда я пытаюсь выполнить его из ./, используя java myClass.MainClass, я получаю ошибку «не удается найти основной класс».

Если я изменю путь к классу с помощью опции -cp, то MainClass больше не сможет найти DummyClass.

Есть намеки?

Большое спасибо;)

Ответы [ 2 ]

1 голос
/ 26 января 2011

Есть ли у MainClass это вверху: package myClass;?

Это необходимо для того, чтобы класс считался частью пакета myClass, и только тогда он может быть правильно адресован как myClass.MainClass - структура каталога должна отражать структуру pacakge.

0 голосов
/ 26 января 2011

Это должно работать для вас:

MainClass:

package myClass;

import dummy.Dummy;

открытый класс MainClass {

java public static static void main (String [] args) {

    System.out.println(:"This is the main class");
    Dummy dummy = new Dummy();
    dummy.exec();
}

}

Пустышка:

пустышка пакета;

публичный классПустышка {

public void exec(){

    System.out.println("This is the dummy class exec invocation");

}

}

В командной строке в корневой папке:

javac myClass / MainClass.java dummy / Dummy.java

  • Это приведет к тому, что класс будет скомпилирован

И это выполнит и вызовет «main» в MainClass: javac myClass / MainClass.java dummy / Dummy.java

...