Дефинирани от потребителя пакети в Java

Редактирах, изпълнявах и компилирах код в Notepad++, използвайки NppExec. Зададох класова пътека в C:\Java. Тази папка съдържа: C:\Java\com\DOMAINNAMEWITHHELD\Classes. В тази папка имам 3 .java файла и един .class файл (Runner.java, Pirate.java, Ninja.java и Pirate.class). Пусках тези файлове в папка на флашка и никой от тримата не се виждаше. Така че ги преместих в моята нова директория, дефинирана от classpath, и все още не мога да получа нищо освен:

C:\Java\com\DOMAINNAMEWITHHELD\Classes\Runner.java:12: грешка: не може да се намери символ phil.throwAStar(tim);

throwAStar() е дефиниран в Ninja и се извиква в Runner.

В трите изходни файла дефинирах пакет като този:

пакет com.DOMAINNAMEWITHHELD.Classes;

Ако съм в друга директория и опитайте:

import com.DOMAINNAMEWITHHELD.Classes.*;

Получавам абсолютно същата грешка. какво правя грешно


person KRKATANAKID    schedule 21.08.2015    source източник
comment
Получавате ли грешката, когато компилирате и стартирате от C:\Java\com\DOMAINNAMEWITHHELD\Classes? Имам предвид преместване в директорията, компилиране и стартиране.   -  person innoSPG    schedule 22.08.2015
comment
Мога да компилирам Pirate съвсем добре, но не препраща към Runner или Ninja. Ninja препраща към Pirate, а Runner препраща към двете. И да, Фил е нинджа. Той е създаден в Runner така: Ninja phil= new Ninja(); и това извиква публичен низ setName(): public String setName(){ System.out.println(Как искате да бъде кръстен вашият нинджа?); Низ n= scanner.nextLine(); връщане n;   -  person KRKATANAKID    schedule 22.08.2015


Отговори (1)


И така, след като изчистих някои синтактични грешки от отстраняване на неизправности и се опитах да поддържам класа, най-накрая успях да компилирам и стартирам Runner, Ninja, Pirate и сега Wizard. В случай, че се чудите как да стартирате .class файл, съдържащ се в пакет:

Да приемем, че файлът е: C:\Java\com\DOMAINWITHHELD\classes\Runner.class

Въведете това в командния ред, за да стартирате Runner:

cd C:\Java

java com.DOMAINWITHHELD.classes.Runner

Сега класът "Runner" в пакета "com.DOMAINWITHHELD.classes" трябва да се изпълни.

person KRKATANAKID    schedule 24.08.2015