Linux как скомпилировать java

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

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

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

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

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

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

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

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

Напишите Java-программу и сохраните файл как filename.java

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Работа с Java в командной строке

От простого к .

Каждая программа обычно содержится в отдельном каталоге. Я придерживаюсь правила создавать в этом каталоге по крайней мере две папки: src и bin. В первой содержатся исходные коды, во второй — результат компиляции. В данных папках будет структура каталогов, зависящая от пакетов.

Один файл

Можно сделать и без лишних папок.
Берем сам файл HelloWorld.java.
Переходим в каталог, где лежит данный файл, и выполняем команды.
В данной папке появится файл HelloWorld.class. Значит программа скомпилирована. Чтобы запустить

Читайте также:  Телеграмм клиент для линукс

Отделяем бинарные файлы от исходников

Теперь сделаем тоже самое, но с каталогами. Создадим каталог HelloWorld и в нем две папки src и bin.
Компилируем
Здесь мы указали, что бинарные файлы будут сохраняться в отдельную папку bin и не путаться с исходниками.

Используем пакеты

А то, вдруг, программа перестанет быть просто HelloWorld-ом. Пакетам лучше давать понятное и уникальное имя. Это позволит добавить данную программу в другой проект без конфликта имен. Прочитав некоторые статьи, можно подумать, что для имени пакета обязательно нужен домен. Это не так. Домены — это удобный способ добиться уникальности. Если своего домена нет, воспользуйтесь аккаунтом на сайте (например, ru.habrahabr.mylogin). Он будет уникальным. Учтите, что имена пакетов должны быть в нижнем регистре. И избегайте использования спецсимволов. Проблемы возникают из-за разных платформ и файловых систем.

Поместим наш класс в пакет с именем com.qwertovsky.helloworld. Для этого добавим в начало файла строчку
В каталоге src создадим дополнительные каталоги, чтобы путь к файлу выглядел так: src/com/qwertovsky/helloworld/HelloWorld.java.
Компилируем
В каталоге bin автоматически создастся структура каталогов как и в src.

Если в программе несколько файлов

HelloWorld.java
Calculator.java
Adder.java

Ошибка возникла из-за того, что для компиляции нужны файлы с исходными кодами классов, которые используются (класс Calculator). Надо указать компилятору каталог с файлами с помощью ключа -sourcepath.
Компилируем

Если удивляет результат

Есть возможность запустить отладчик. Для этого существует jdb.
Сначала компилируем с ключом -g, чтобы у отладчика была информация.

Отладчик запускает свой внутренний терминал для ввода команд. Справку по последним можно вывести с помощью команды help.
Указываем точку прерывания на 9 строке в классе Calculator

Запускаем на выполнение.

Чтобы соориентироваться можно вывести кусок исходного кода, где в данный момент находится курссор.

Узнаем, что из себя представляет переменная а.

Выполним код в текущей строке и увидим, что sum стала равняться 2.

Поднимемся из класса Adder в вызвавший его класс Calculator.

Удаляем точку прерывания

Можно избежать захода в методы, используя команду next.

Проверяем значение выражения и завершаем выполнение.

Хорошо бы протестировать

Запускаем. В качестве разделителя нескольких путей в classpath в Windows используется ‘;’, в Linux — ‘:’. В консоли Cygwin не работают оба разделителя. Возможно, должен работать ‘;’, но он воспринимается как разделитель команд.

Создадим библиотеку

Класс Calculator оказался полезным и может быть использован во многих проектах. Перенесем всё, что касается класса Calculator в отдельный проект.

Измените также назавания пакетов в исходных текстах. В HelloWorld.java нужно будет добавить строку

Делаем архив jar

С помощью ключа -C мы запустили программу в каталоге bin.

Надо узнать, что у библиотеки внутри

Можно распаковать архив zip-распаковщиком и посмотреть, какие классы есть в библиотеке.
Информацию о любом классе можно получить с помощью дизассемблера javap.

Из результата видно, что класс содержит кроме пустого конструктора, ещё один метод sum, внутри которого в цикле вызывается метод add класса Adder. По завершении метода sum, вызывается Adder.getSum().
Без ключа -c программа выдаст только список переменных и методов (если использовать -private, то всех).

Лучше снабдить библиотеку документацией

Изменим для этого класс калькулятора.

Документацию можно создать следующей командой. При ошибке программа выдаст список возможных опций.

В результате получиться следующее

Можно подписать jar-архив

Если требуется подписать свою библиотеку цифровой подписью, на помощь придут keytool и jarsigner.
Генерируем подпись.

Читайте также:  Windows зависает только во время установки

Генерируем Certificate Signing Request (CSR)

Содержимое полученного файла отправляем в центр сертификации. От центра сертификации получаем сертификат. Сохраняем его в файле (например, qwertokey.cer) и импортируем в хранилище

Файл qwertokey.cer отправляем всем, кто хочет проверить архив. Проверяется он так

Использование библиотеки

Есть программа HelloWorld, которая использует библиотечный класс Calculator. Чтобы скомпилировать и запустить программу, нужно присоединить библиотеку.
Компилируем

Собираем программу

Это можно сделать по-разному.

Первый способ

Здесь есть тонкости.
В строке

не должно быть пробелов в конце.
Вторая тонкость описана в [3]: в этой же строке должен стоять перенос на следующую строку. Это если манифест помещается в архив сторонним архиватором.
Программа jar не включит в манифест последнюю строку из манифеста, если в конце не стоит перенос строки.
Ещё момент: в манифесте не должно быть пустых строк между строками. Будет выдана ошибка «java.io.IOException: invalid manifest format».

При использовании команды echo надо следить только за пробелом в конце строки с main-class.

Второй способ

В данном способе избегаем ошибки с пробелом в main-class.

Третий способ

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

Запуск исполняемого jar-файла

Файл calculator.jar исполняемым не является. А вот helloworld.jar можно запустить.
Если архив был создан первыми двумя способами, то рядом с ним в одном каталоге должна находится папка lib с файлом calculator.jar. Такие ограничения из-за того, что в манифесте в class-path указан путь относительно исполняемого файла.

При использовании третьего способа нужные библиотеки включаются в исполняемый файл. Держать рядом нужные библиотеки не требуется. Запускается аналогично.

Как быть с приложениями JavaEE

Аналогично. Только библиотеки для компиляции нужно брать у сервера приложений, который используется. Если я использую JBoss, то для компиляции сервлета мне нужно будет выполнить примерно следующее

Структура архива JavaEE-приложения должна соответствовать определенному формату. Например

Способы запуска приложения на самом сервере с помощью командной строки для каждого сервера различны.

Надеюсь, данная статья станет для кого-нибудь шпаргалкой для работы с Java в командной строке. Данные навыки помогут понять содержание и смысл Ant-скриптов и ответить на собеседовании на более каверзные вопросы, чем «Какая IDE Вам больше нравится?».

Источник

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

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

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

4 ответа

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

From Terminal install open jdk Напишите программу java и сохраните файл как filename.java Теперь для компиляции используйте эту команду с терминала . Если все работает хорошо, тогда необходимо создать новый файл «filename.class». Для запуска вашей программы, которую вы только что скомпилировали, введите следующую команду в терминале:

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

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

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

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

Вы хотите сделать:

Тем не менее, это общепринятое соглашение, дающее классы и файлы с тем же именем.

Читайте также:  Как узнать номер порта компьютера windows 10

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

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

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

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

Таким образом, вы, вероятно, хотели бы использовать более сложные решения. Большинство текстовых редакторов поддерживают подсветку синтаксиса Java, например default-jdk , kate или vim, но они не решают проблему с компиляцией.

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

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

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

Источник

Как создать и выполнить файл .Jar в терминале Linux

JAR (Java ARchive) – это независимый от платформы формат файла, используемый для объединения многих файлов классов Java и связанных с ними метаданных и ресурсов, таких как текст, изображения и т. д., в один файл для распространения.

Он позволяет Java-средам эффективно разворачивать целое приложение в одном архиве и предоставляет множество преимуществ, таких как безопасность, его элементы могут быть сжаты, сокращено время загрузки, позволяетcz уплотнение пакетов и управление версиями, поддерживает переносимость.

Он также поддерживает упаковку для расширений.

В этой статье мы покажем, как создать простое приложение Java и связать его с JAR-файлом и продемонстрируем, как выполнить файл .jar из терминала Linux.

Для этого у вас должен быть установлен инструмент командной строки java для запуска приложения Java и флаг -jar для выполнения программы, инкапсулированной в файл JAR.

Когда этот флаг используется, указанный JAR-файл является источником всех пользовательских классов, а другие параметры пути класса игнорируются.

Как создать JAR-файл в Linux

1. Сначала начните с написания простого Java-класса с основным методом для приложения TecmintApp для демонстрационных целей.

Скопируйте и вставьте следующий код в файл TecmintApp.java.

Сохраните файл и закройте.

2. Затем нам нужно скомпилировать и упаковать класс в JAR-файл, используя утилиты javac и jar, как показано ниже:

3. Создана Ounce tecmint app.jar, теперь вы можете выполнить файл с помощью команды java, как показано ниже:

Из вывода приведенной выше команды видно, что мы столкнулись с ошибкой. JVM (Java Virtual Machine) не смог найти наш основной атрибут, поэтому он не смог найти основной класс, содержащий основной метод (public static void main (String [] args)).

Файл JAR должен иметь манифест, содержащий строку в форме Main-Class: classname, которая определяет класс с основным методом, который служит отправной точкой нашего приложения.

4. Чтобы исправить вышеуказанную ошибку, нам нужно будет обновить JAR-файл, чтобы включить атрибут манифеста вместе с нашим кодом.

Давайте создадим файл MANIFEST.MF.

Скопируйте и вставьте следующую строку в файл MANIFEST.MF.

Сохраните файл и добавьте файл MANIFEST.MF в наш tecmintapp.jar, используя следующую команду:

5. Наконец, когда мы снова выполним файл JAR, он должен предоставить нам ожидаемый результат, как показано на выводе:

Для получения дополнительной информации см. Man-страницы java, javac и jar.

Источник

Оцените статью