Предположим я написал программу. Самую простую, калькулятор какой-нибудь. Он весит, грубо говоря, 20 мб., бинарники + исходники + пр. ресурсы. Чтобы запустить программу нужна явамашина. Она есть в JDK. Чтобы другие люди смогли оценить мой «супер-калькулятор» им нужно всем скачивать и устанавливать JDK?
Ведь JDK весит намного больше чем моя программа.
Отслеживать
user282693
задан 3 мая 2018 в 17:35
185 12 12 бронзовых знаков
Нет, им достаточно установить JRE.
3 мая 2018 в 17:37
Ну и надо очень постараться, чтобы простой калькулятор вешал 20 Mb.
3 мая 2018 в 17:40
Я сейчас из любопытства глянул — jar-файл Minecraft 1.12.2 весит 10 мегабайт. Очень интересный у вас калькулятор получился 🙂
3 мая 2018 в 18:19
начиная с java 9 для создания автономного дистрибутива можно воспользоваться утилитой jlink, которая скопирует jvm и нужные зависимости из поставки jre. Steve Perkins в своем блоге пишет, что консольный Hello World займет 22 МБ, а оконный на JavaFX — 46 МБ.
3 мая 2018 в 20:38
Я целых 2 предложения потратил на описание того, что калькулятор «гипотетический». Мне с вами явно не соревноваться в остроумии на тему размера проектов, так почему бы по делу не поговорить?
4 мая 2018 в 5:14
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
НЕТ, JDK — набор разработчик (JRE + для разработки), для запуска jar архивов(запускаемых джава-архивов) нужно только JRE. ХОтя и JRE весит гораздо больше чем твой калькулятор
Например на с++ тебе не нужно что либо скачивать помимо самой запускаемой программы, но тебе нужно будет компилировать свой код под огромное множество различных процессоров. Т.Е ты не сможешь просто написать программу , скинуть exe файл на другой компьютер и запустить её(Вернее сможешь, но он не всегда будет запускаться).
Отслеживать
ответ дан 3 мая 2018 в 18:07
Андрей Козицкий Андрей Козицкий
1,038 1 1 золотой знак 7 7 серебряных знаков 23 23 бронзовых знака
Еще есть вариант поставлять все вместе, т.е. ваш Jar и JRE(он портабельный). Просто создайте директорию с Вашим Jar и рядом с JRE примерно так
MyApp ├ myJar.jar ├jre [jre directory] └ start.sh (или start.bat)
и можно еще написать скрипт запуска start вида ./jre/bin/java -jar ./myJar.jar .
Кроме того существуют конвертеры которые преобразуют Jar в нативный код (довольно много Jar to exe конвертеров)
Источник: ru.stackoverflow.com
Установка Java в Ubuntu и Linux Mint
Java — это язык программирования, разработанный компанией Sun Microsystems, которую потом купила компания Oracle.
Программы, написанные на Java обычно работают в различных операционных системах, то есть являются кроссплатформенными. Для запуска таких программ необходимо наличие в системе Виртуальной машины Java (Java Virtual Machine — JVM), то есть, проще говоря, наличие некоторых дополнительных компонентов, которые обеспечивают возможность запуска Java-программ в системе.
Обычно, когда говорят о том, что в Linux нужно установить Java, то имеют ввиду, что нужно установить Виртуальную машину Java, чтобы получить возможность запускать программы, написанные на Java.
Какие версии Java бывают и чем отличаются
Существует несколько реализаций Java для Linux. Самыми популярными являются OpenJDK и Oracle Java. В Linux обычно пользователь устанавливает одну из этих реализаций.
- Oracle Java — реализация Java для Linux от компании Oracle. В ней содержатся некоторые закрытые (проприетарные) компоненты и компоненты, которые защищены патентами.
- OpenJDK — реализация Java для Linux с открытым исходным кодом.
Обе версии вполне работоспособны и в Linux можно использовать любую из них. Но иногда, для некоторых приложений, рекомендуется использовать Oracle Java.
В Linux пакеты с Java представлены в двух редакциях:
- JRE — Java Runtime Environment — компоненты, предназначенные для запуска Java-программ в Linux.
- JDK — Java Development Kit — компоненты, предназначенные для запуска, компиляции и разработки Java-программ.
Какую версию устанавливать
Рядовому пользователю, которому нужно просто запускать Java-программы, обычно достаточно установить «OpenJDK JRE».
Если потребуется компиляция Java-программ, то нужно будет установить «OpenJDK JDK».
Рассмотрим, как установить Java в Ubuntu Linux. Абсолютно аналогично выполняется установка в Linux Mint и других дистрибутивах, основанных на Ubuntu.
— Я ничего не понял. Что мне устанавливать?
— Если вам нужно просто запускать Java-программы в Ubuntu (Linux Mint), то устанавливайте OpenJDK JRE.
Проверка версии Java
Чтобы проверить, установлена ли у вас уже в системе какая-либо версия Java, выполните в терминале команду:
java -version
Если Java установлена, то вы получите информацию о том, какие компоненты Java установлены в системе.
Установка OpenJDK
Установка OpenJDK JRE
Для установки OpenJDK JRE в Ubuntu Linux достаточно установить пакет default-jre. Для установки выполните в терминале команду:
sudo apt install default-jre
Установка OpenJDK JDK
Если вы хотите установить OpenJDK JDK, то нужно установить пакет default-jdk (он также установит default-jre). Для установки выполните команду:
sudo apt install default-jdk
Установка OpenJDK определенной версии
Если вам нужно установить конкретную версию, то выполните одну из следующих команд. В репозиториях Ubuntu сейчас представлены OpenJDK версий 11 и 8.
sudo apt install openjdk-11-jdk sudo apt install openjdk-11-jre sudo apt install openjdk-8-jdk sudo apt install openjdk-8-jre
После установки, можно проверить, какие компоненты Java установлены, выполнив команду:
java -version
Установка Oracle JDK
Установка Oracle JDK свежей версии
Свежую версию Oracle JDK можно установить, используя PPA-репозиторий, подготовленный проектом linuxuprising.
Сначала добавим PPA-репозиторий. Выполняем следующие команды. При выполнении первой команды появится информационное сообщение, нажмите Enter для продолжения.
sudo add-apt-repository ppa:linuxuprising/java sudo apt update
Теперь выполним установку Oracle Java версии 12:
sudo apt install oracle-java12-installer
Во время установки нужно будет ознакомиться и принять лицензию:
Для установки Oracle Java версии 11 используйте команду:
sudo apt install oracle-java11-installer
Установка Oracle JDK старой версии
Если вам нужно установить Oracle JDK старой версии 8, то вы можете воспользоваться PPA-репозиторием, который подготовлен проектом webupd8. Для установки выполните в терминале следующие команды. При выполнении первой команды появится информационное сообщение, нажмите Enter для продолжения.
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt install oracle-java8-installer
Как удалить Java
Если у вас установлены пакеты OpenJDK, то для их удаления используйте команду:
sudo apt remove openjdk*
Или следующую команду, если требуется также удалить файлы конфигурации (полное удаление OpenJDK):
sudo apt purge openjdk*
Для удаления Oracle Java используется команда:
sudo apt purge oracle-java*
Запуск Java-программ
Если Java установлена в Ubuntu Linux, то для запуска Java-программ обычно достаточно дважды щелкнуть по файлу программы. Он может иметь расширение .jar .
Для запуска .jar файлов из командной строки, выполните команду:
java -jar ./myprogram.jar
Заключение
Компиляция и запуск программ на Java
Java — это компилируемый язык. Для начинающего программиста это означает, что нужно сделать на одно действие больше — сперва выполнить команду для компиляции в байткод и только потом запускать из получившегося в результате компиляции файла.
Этим Java похожа на C и C++ и отличается от, например, Python и PHP
Компиляция
javac Class.java
java Class
Перейдите в папку C:UsersUsername
создайте там директорию hello_java
и перейдите в эту директорию
mkdir hello_java
cd hello_java
Создайте в блокноте пустой файл и сохраните его в hello_java под именем Hello.java
Скопируйте в этот файл следующий код
В Java имя файла должно совпадать с именем класса. Файл мы назвали Hello.java значить класс должен называться Hello
В командной строке выполните
Hello.java скомпилируется в Hello.class
Убедитесь, что в директории hello_java появился файл Hello.class выполнив
Volume in drive C is C Volume Serial Number is FCB7-BB1E Directory of C:UsersAndreihello_java 07/21/2020 04:18 PM . 07/21/2020 04:18 PM .. 07/21/2020 04:18 PM 422 Hello.class 07/21/2020 04:18 PM 145 Hello.java 2 File(s) 567 bytes 2 Dir(s) 81,734,488,064 bytes free
Даже в такой простой программе мы уже успели задействовать Java Standard Edition (SE) APIs вызвав System
Есть ещё Java Enterprise Edition (EE) APIs, но они уже не поддерживаются Oracle, а переданы в Eclipse Foundation и доступны по ссылке jakarta.ee
Следующий шаг — выполнение кода.
Выполнить
В командной строке выполните
Вызвав java мы обратились к Java Virtual Machine (JVM)
Java Standard Edition (SE) APIs + Java Virtual Machine (JVM) = Java Development Kit (JDK)
java + javac = JDK
Компиляция с указанием кодировки
Чтобы явно указать кодировку utf8
javac -encoding utf8 Hello.java
Источник: urn.su