Скомпилируйте и запустите эту Java-программу - PullRequest
1 голос
/ 29 января 2010

Как мне скомпилировать и запустить следующие программы:

Test1.java:

package A;

public class Test1
{
    public int a = 1;
}

Test2.java:

package B;

import A.*;

public class Test2
{
    public static void main(String [] args)
    {
        Test1 obj = new Test1();
        System.out.println(obj.a);
    }
}

Я новичок в посылках. Если я скомпилирую, используя javac *.java и вручную создайте dir A, скопируйте в него Test1.class и вручную создайте dir B, скопируйте в него Test2.class и затем запустите java B.Test2, он работает. Я уверен, что это не правильный способ сделать это. Пожалуйста, предложите.

Ответы [ 5 ]

2 голосов
/ 29 января 2010

Нет ничего плохого в том, как вы компилируете, это просто громоздко, но, конечно, не так.

При этом создайте каталог src для хранения ваших файлов .java, сохраняя структуру каталогов в соответствии со структурой пакетов ваших классов. В этом случае у вас будет каталог src и внутри него, каталог A и каталог B. Внутри A поместите Test1.java, а внутри B поместите Test2.java

Тогда:

javac B/Test2.java

Почему Test2.java? Поскольку это зависит от A, то компилятор достаточно умен, чтобы сначала скомпилировать A / Test1.java, а затем B / Test2.java. На данный момент у вас есть каждый .class файлы внутри A и B

Для запуска:

java B.Test2
2 голосов
/ 29 января 2010

Вы должны держать ваши Java-файлы в правильной структуре каталогов:

A/Test1.java
B/Test2.java

Обычно достаточно вызвать javac для вашего основного класса, поскольку все зависимости будут обрабатываться автоматически. После того, как я говорю javac B/Test2.java, это выглядит так:

A/Test1.class
A/Test1.java
B/Test2.class
B/Test2.java

И я могу запустить программу с java B.Test2.

Если вам недостаточно просто запустить javac в вашем основном классе, вам, вероятно, понадобится система сборки.

2 голосов
/ 29 января 2010

Вы должны хранить ваши файлы .java в структуре каталогов, соответствующей структуре вашего пакета.

поэтому Test1.java должен идти в каталог A поэтому Test2.java должен идти в каталог B

0 голосов
/ 02 февраля 2010

Это не прямой ответ на ваш вопрос, но вы можете подумать об использовании IDE (другие предложили муравей).Я бы порекомендовал jcreator, если вы только начинаете, или Eclipse, если вы хотите что-то хорошее.

0 голосов
/ 29 января 2010

Компилятор создаст каталоги с именами A и B и поместит в них файлы .class.

Вам не нужно копировать файлы классов вручную в их каталоги пакетов, и, вероятно, это не сработает, если вы это сделаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...