Как скомпилировать файл .java в Ubuntu?


94

Как я могу скомпилировать файл .java?

Какие программы мне понадобятся? Если мне нужен Java JDK, мне также понадобится помощь в его установке. Я очень новичок в Ubuntu, поэтому для любой программы, которую мне нужно установить, мне потребуется руководство по их установке.

Ответы:


104

Чтобы скомпилировать файл, откройте свой терминал и введите

javac filename.java

Чтобы запустить сгенерированный файл класса, используйте

java filename

Но для этого вам нужно установить Java JDK на ваш компьютер. Вы можете установить его с инструкциями в Как установить Java? ,


ммм .. нет javac java_test.javaзаканчивается успешно, но java_testфайл не найден. только ag.class
phil294

@Blauhirn да, но если вы все равно просто запустите, java filenameон будет работать, даже если файла там нет.
boltup_im_coding

2
Если javacгенерирует, Program.classто запустите его сjava Program
spencer.sm

Если кто-то получит java.lang.ClassNotFoundException, попробуйте java -cp . filename.
GyuHyeon Choi

28

OpenJDK работает лучше всего для меня. Это просто, и я никогда не сталкивался с этой проблемой. Просто следуйте этим простым шагам:

  1. Из Терминала установите открытый jdk

    sudo apt-get install openjdk-7-jdk
  2. Напишите Java-программу и сохраните файл как filename.java

  3. Теперь для компиляции используйте эту команду из терминала

    javac filename.java

    Если все работает хорошо, то должен быть создан новый файл «filename.class».

  4. Чтобы запустить только что скомпилированную программу, введите в терминале следующую команду:

    java filename

НОТА

Вы можете использовать любой текстовый редактор (например, Gedit),

замените имя файла тем именем, которое вы хотите

Вы должны находиться в том же каталоге, что и «текущий рабочий каталог» (полученный при запуске pwd) во время выполнения команды из терминала.


3
«Ошибка: не удалось найти или загрузить основной класс»
Dev

12

Если, например, ваш файл my_file.java:

class MyClass
{
    public static void main(String[] args)
     {
       System.out.println("Hello World");
     }
}

Ты хочешь сделать:

javac my_file.java

а потом

java MyClass # The name of the class, not file

Однако общепринято называть классы и файлы одинаковыми именами.


Я бы сказал, что ваша оригинальная версия была лучше, так #как это символ комментария в оболочках.
Муру

6

Вам необходимо установить JDK, Java Development Kit. Ubuntu содержит метапакет default-jdk , который зависит от предпочитаемого в настоящее время JDK. Теперь это openjdk-6-jdk.

Чтобы скомпилировать файл Java в исполняемый файл .class, вы можете запустить

javac filename.java

и запустить его

java file

Это самый простой вариант использования, и в основном он не работает, потому что классы Java в основном зависят от других классов Java, размещенных в библиотеках.

Поэтому вы, вероятно, хотели бы использовать более сложные решения. Большинство текстовых редакторов поддерживают подсветку синтаксиса Java, например, jEdit , kate или vim , но они не решают проблему компиляции.

У вас есть другой вариант - вы можете установить полнофункциональную Java IDE. Ubuntu поставляется с двумя основными Java IDE с открытым исходным кодом - NetBeans и Eclipse .


Для первой установки default-jdk является обязательным, а openjdk-X-jdk недостаточно.
JohnRos

3

Просто наберите sudo apt-get update, а затем sudo apt-get install openjdk-7-jdkдля быстрой установки java7, тогда вы можете играть в игры с java :-)

Для получения более подробной официальной документации по Java, пожалуйста, перейдите по этой ссылке .


2
Я бы предположил, что людям, начинающим изучать Java сейчас, лучше всего изучать последнюю версию Java 7 ( sudo apt-get install openjdk-7-jdk). Кроме того, лучше всего запускать sudo apt-get updateперед installзагрузкой пакетов из Терминала.
Элия ​​Каган

7 присутствует только в 12.04. 6 делает ответ более общим
Торбьерн Равн Андерсен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.