How to compile a .java file on Ubuntu?
How can I compile a .java file? What programs will I need? If I need the Java JDK I will also need help installing that. I’m very new to Ubuntu, so any program that I need to install I will need a tutorial on how to install them.
6 Answers 6
To compile the file, open your terminal and type
To run the generated class file, use
But to do this you need to have the Java JDK installed in your computer. You can install it with the instructions in How do I install Java?.
umm.. no. javac java_test.java finishes successfully, but there is no java_test file to be found. only a g.class
@Blauhirn yes, but if you still just run java filename it will work, even though the file is not there.
OpenJDK works best for me. It’s simple and I have never faced any problem with it. Just follow these simple steps:
- From Terminal install open jdk
sudo apt-get install openjdk-7-jdk
You can use any text editor (like gedit) ,
replace the filename with watever name you want
you need to be on same directory as the «present working directory» (got by running pwd ) while running the command from terminal.
If for example your file is my_file.java :
java MyClass # The name of the class, not file
However, it is a common convention to give classes and files the same name.
You need to install a JDK, Java Development Kit. Ubuntu contains a metapackage default-jdk, which depends on currently prefered JDK. Now it is openjdk-6-jdk.
To compile a Java file to runnable .class file you can run
It is the most simple use-case and mostly it doesn’t work because java classes mostly depends on other java classes placed in libraries.
So you would probably like to use some more sophisticated solutions. Most text editors supports Java syntax highlighting, for example jEdit, kate or vim, but they don’t solve your compilation issue.
You have another option — you can install a full featured Java IDE. Ubuntu comes with both main OpenSource Java IDEs — NetBeans and Eclipse.
Just type sudo apt-get update , followed by sudo apt-get install openjdk-7-jdk for a quick installation for java7, then you can play games with java 🙂
For more detailed official Java documentation, please visit this link.
I’d suggest that people starting to learn Java now would be best off learning the latest version, Java 7 ( sudo apt-get install openjdk-7-jdk ). Also, it’s best to run sudo apt-get update before install ing packages from the Terminal.
Why is my output so weird when I try to compile a demo example with $ java my_program.java ?
I found this program to compile at: [https://developers.google.com/optimization/introduction/java][1]
my_program.java:2: error: cannot find symbol import com.google.ortools.Loader; ^ symbol: class Loader location: package com.google.ortools my_program.java:3: error: cannot find symbol import com.google.ortools.linearsolver.MPConstraint; ^ symbol: class MPConstraint location: package com.google.ortools.linearsolver my_program.java:4: error: cannot find symbol import com.google.ortools.linearsolver.MPObjective; ^ symbol: class MPObjective location: package com.google.ortools.linearsolver my_program.java:5: error: cannot find symbol import com.google.ortools.linearsolver.MPSolver; ^ symbol: class MPSolver location: package com.google.ortools.linearsolver my_program.java:6: error: cannot find symbol import com.google.ortools.linearsolver.MPVariable; ^ symbol: class MPVariable location: package com.google.ortools.linearsolver my_program.java:11: error: cannot find symbol Loader.loadNativeLibraries(); ^ symbol: variable Loader location: class BasicExample my_program.java:13: error: cannot find symbol MPSolver solver = MPSolver.createSolver("GLOP"); ^ symbol: class MPSolver location: class BasicExample my_program.java:13: error: cannot find symbol MPSolver solver = MPSolver.createSolver("GLOP"); ^ symbol: variable MPSolver location: class BasicExample my_program.java:16: error: cannot find symbol MPVariable x = solver.makeNumVar(0.0, 1.0, "x"); ^ symbol: class MPVariable location: class BasicExample my_program.java:17: error: cannot find symbol MPVariable y = solver.makeNumVar(0.0, 2.0, "y"); ^ symbol: class MPVariable location: class BasicExample my_program.java:22: error: cannot find symbol MPConstraint ct = solver.makeConstraint(0.0, 2.0, "ct"); ^ symbol: class MPConstraint location: class BasicExample my_program.java:29: error: cannot find symbol MPObjective objective = solver.objective(); ^ symbol: class MPObjective location: class BasicExample 12 errors error: compilation failed
Java компилятор для linux
Eclipse — одна из самых популярных Java IDE представляет собой удобное приложение, с собственным компилятором, набор полезных библиотек, встроенным языком моделирования и управления, функциями умного рефакторинга кода и проверки синтаксиса. Поставляется в комплекте с пакетом распространенных шаблонов кода и подключаемых модулей.
- Поддержка других языков программирования.
- Удобный интерфейс.
- Удаленное управление проектами.
- Легко интегрировать с Git и Maven.
- Качественные инструменты для редактирования, удобно отлаживать и рефакторить.
- Функция автозавершение кода.
- Поддерживает основные операционки и платформы.
- Требует немало ресурсов ЦП.
- Частые сбои в работе.
- Довольно сложная система плагинов.
NetBeans
Netbeans — IDE от Oracle с открытым исходным кодом, поддерживающая различные платформы и имеющая встроенные функции, упрощающие разработку ПО. Имеет мощные инструменты рефакторинга и отладки. И хотя предназначена она в основном для Java, поставляется с пакетом расширений, позволяющих работать с другими языками (C, C ++ , JavaScript).
- Кроссплатформенная поддержка.
- Удобная система подключения плагинов.
- Доступна для разработчиков из разных стран, с поддержкой 28 языков мира.
- Встроенный пакет с готовыми шаблонами разработки сценариев.
- Функция параллельного сравнения кода.
- Инструменты управления проектами.
- Поддерживает Maven.
- Поддерживает основные операционки и платформы.
IntelliJ IDEA
Эта многоцелевая программная среда, предлагающая расширенную поддержку веба, мобильной и гибридной разработки также входит в большую тройку IDE для работы с Java. В ней присутствуют функции межъязыкового рефакторинга, анализа потока данных, интеллектуального завершения синтаксических выражений, проверки и быстрого исправления кода и обнаружения дубликатов.
- В комплекте две версии программы:
- Лицензионная от сообщества разработчиков (Community Edition).
- Проприетарная коммерческая версия (Ultimate Edition).
- Поддерживает Kotlin.
- Обладает широким спектром расширенных функций.
- Мощный компилятор.
- Система сборки Gradle.
- Поддерживает основные операционки и платформы.
BlueJ
BlueJ больше популярен среди опытных Java-разработчиков и в первую очередь предназначен для образовательных целей и разработки небольших программ. Однако проект совершенно бесплатный и отлично подходит для новичков. У программы незамысловатый простой интерфейс с раскрашенной областью действия, панелями объектов и хорошей учебной спецификацией.
- Поставляется бесплатно.
- Интуитивно понятный интерфейс с удобной навигацией.
- Не требует установки для использования и работает на нескольких платформах.
- Показывает UML-диаграммы ваших проектов.
- Поддерживаемые платформы: Linux, Windows, MacOS
- Не подходит для больших проектов из-за частых сбоев.
- Не хватает многих функций для создания надежных приложений.
jGrasp
Легкая IDE, созданная для разработчиков, ценящих порядок, поскольку поставляется она с диаграммами структуры управления и профилем сложности. Она не замедляет работу и делает процесс создания приложений более продуктивным. Это достаточно качественная программная среда поставляется со всеми необходимыми функциями и фокусируется на простоте использования и высокой производительности, не слишком загромождая интерфейс. Он понятен и содержит все ингредиенты, необходимые для наилучшего взаимодействия с пользователями разных программных направлений. С jGRASP легко создавать новые проекты с нуля или редактировать уже существующие. Кроме Java, она поддерживает С, С++, Python, Objective C и другие популярные языки.
- Бесплатная и легкая среда разработки.
- Легко освоить новичку.
- Поддерживает основные операционки и платформы.
Android Studio
Эта IDE для написания, отладки, тестирования и эмуляции мобильных приложений сочетает в себе много различных опций и поставляется с открытым исходным кодом. Разработана на базе IntelliJ IDEA от JetBrains, поэтому имеет с этой платформой некоторое сходство. У нее элегантный интерфейс, который придется по нраву как новичкам, так и опытным разработчикам.
Android Studio нацелена на быструю разработку андроид-приложений и предоставляет пользователю грамотные инструменты для отладки и рефакторинга.
- Функция обновления интерфейса без перезапуска разрабатываемой программы.
- Встроенный эмулятор, с которым легко адаптировать приложение под нужную конфигурацию устройства.
- Оснащена редактором нового поколения, автоматически завершающим код и запускающим проверку синтаксиса.
- Встроена система Gradle для автоматизации сборки проектов.
- Поддерживает основные операционки и платформы.
К минусам можно отнести разве что ее англоязычный интерфейс, но ведь и писать код вы будете не на русском.
Универсальные онлайн-IDE поддерживающие Java
Онлайн или веб-IDE – эта, не требующая установки, среда разработки, обладающая всеми функциями традиционной IDE, к которой можно получить доступ через браузер. Вот несколько неплохих вариантов для работы с Джава.
jDoodle
Эта среда разработки, помимо Java поддерживает более 70 языков (C++, PHP, Perl, Python и другие), имеет терминальную поддержку для запуска интерактивных программ, функции сохранения и совместного использования, отладчик и поддержку большинства библиотек Java.
Codiva
Codiva — это онлайн-IDE для C, C++ и Java с функциями немедленной компиляции и автозаполнения, позволяют создавать интерактивные приложения, которые эффективно работают на мобильных устройствах.
OnlineGDB
Эта веб-среда разработки отлично подходит для написания сложных программ благодаря встроенному отладчику и форматировщику кода, функциям для совместного программирования и быстрому компилятору.
IDEOne
IDEOne — еще один универсальный вариант для работы с кодом, с дополнительной подсветкой синтаксиса и качественными инструментами для отладки.
Выбирать среду разработки нужно исходя из уровня ваших навыков и типа будущего проекта. Новичку нужно что-то простое и легкое в использовании, опытному джависту — многофункциональный инструмент, изобилующий полезными плагинами. Учитывайте, что некоторые IDE лучше подходят для веб-разработки, другие — для создания ПО. Но самое главное, выбранный вами вариант должен быть простым для понимания и удобным для работы.
Знаете еще один неплохой вариант программы для разработки на Java – посоветуйте его в комментариях.