#java #linux #class
#java #linux #класс
Вопрос:
Я довольно новичок в Java и Linux. Я не могу использовать IDE, но у меня установлен jdk (очевидно). У меня их три.файлы Java, которые я хочу скомпилировать. Один из них — это основной файл кода и два небольших класса. как мне скомпилировать их с помощью терминала? эти файлы называются:
- main.java
- object.java (Object.class при компиляции)
- living.java (Living.class при компиляции)
object.java и living.java на данный момент у меня есть только конструктор, который я хочу вызвать
я пытался
javac main.java #this seems to be the right one
javac main.java object.java living.java
javac main.java Object.class Living.class
в терминале и
import object.java;
import living.java;
import Object.class;
import Living.class;
import object;
import living;
import Object;
import Living;
в main.java файл
но, похоже, ничего не работает
когда я использую
import Living;
в коде мне сообщается, что в нем отсутствует ; или .
при использовании предварительно скомпилированного
import Living.class
в коде я получаю
error: class, interface, or enum expected
import <Object.class>;
в терминале и когда я пытаюсь
import living.java
в коде я получаю
error: package living does not exist
import living.java;
в терминале
итак, что я делаю не так? нужно ли импортировать предварительно скомпилированные классы или java-файлы кода? должен ли я указывать javac все файлы, которые я хочу использовать, или только main.java файл? main.java компилируется без ошибок, когда я не пытаюсь импортировать один из классов. И если мне придется использовать.файлы jar, пожалуйста, объясните и приведите пример
Комментарии:
1. Обратите внимание, что если все три класса находятся в одном пакете, вам не нужно
import
использовать их в своем коде.2. dummies.com/programming/java/how-to-use-the-javac-command
Ответ №1:
Имя вашего файла должно соответствовать имени класса, например, если у вас есть class Living {...
ваше имя файла должно быть названо Living.java
. Имейте в виду, что здесь используется один и тот же символьный регистр. Если вы используете package xyz;
in Living.java
, вам также необходимо поместить свой файл в подкаталог xyz
(например xyz/Living.java
).
Импорт должен выполняться import Living;
с тем же регистром. При использовании package xyz;
в вашем Living.java
, вы должны использовать import xyz.Living;
. Классы в одном пакете не нужно импортировать.
Вы компилируете свои файлы с помощью javac Living.java
или с помощью package javac xyz/Living.java
. javac
Будет создан файл Living.class
/ xyz/Living.class
.
То же самое с Main.java
.
Чтобы запустить метод класса main, вы должны запустить java
исполняемый файл с именем класса, который содержит static void main(...)
метод, например, java Main
(или java xyz.Main
если у Main есть package xyz;
).
Никогда не создавайте, Object.java
поскольку Object
он уже зарезервирован…
Кстати: может быть, вы следуете одному из многих руководств, доступных онлайн, чтобы получить первое представление о Java…
Комментарии:
1. прежде всего, спасибо за ваш ответ, но @Arnaud уже прокомментировал ответ. мне не нужно использовать импорт, и это работает. Затем все онлайн-руководства говорят мне использовать IDE. И да, для более крупных проектов я буду помнить о том, чтобы избегать Object как класса и предоставлять file. java и file.class то же имя
Ответ №2:
как прокомментировал @Arnaud: «Обратите внимание, что если все три класса находятся в одном пакете, вам не нужно импортировать их в свой код»
в этом случае мне не нужно импортировать эти классы, и если оставить импорт, все работает.