Как сохранить программу java
If I have a Java source file (*.java) or a class file (*.class), how can I convert it to a .exe file?
I also need an installer for my program.
simple hack for applets: write a C code with main and a call to function "system" like system("appletviewer java_src_file");
As of 2021 GraalVM is an interesting way of compiling Java to native code and officially supported by Oracle.
16 Answers 16
javapackager
The Java Packager tool compiles, packages, and prepares Java and JavaFX applications for distribution. The javapackager command is the command-line version.
– Oracle's documentation
The javapackager utility ships with the JDK. It can generate .exe files with the -native exe flag, among many other things.
WinRun4J
- Uses an INI file for specifying classpath, main class, vm args, program args.
- Custom executable name that appears in task manager.
- Additional JVM args for more flexible memory use.
- Built-in icon replacer for custom icon.
- [more bullet points follow]
WinRun4J is an open source utility. It has many features.
packr
Packages your JAR, assets and a JVM for distribution on Windows, Linux and Mac OS X, adding a native executable file to make it appear like a native app. Packr is most suitable for GUI applications.
– packr README
packr is another open source tool.
JSmooth
JSmooth is a Java Executable Wrapper. It creates native Windows launchers (standard .exe) for your java applications. It makes java deployment much smoother and user-friendly, as it is able to find any installed Java VM by itself.
– JSmooth's website
JSmooth is open source and has features, but it is very old. The last release was in 2007.
JexePack
JexePack is a command line tool (great for automated scripting) that allows you to package your Java application (class files), optionally along with its resources (like GIF/JPG/TXT/etc), into a single compressed 32-bit Windows EXE, which runs using Sun's Java Runtime Environment. Both console and windowed applications are supported.
– JexePack's website
JexePack is trialware. Payment is required for production use, and exe files created with this tool will display "reminders" without payment. Also, the last release was in 2013.
InstallAnywhere
InstallAnywhere makes it easy for developers to create professional installation software for any platform. With InstallAnywhere, you’ll adapt to industry changes quickly, get to market faster and deliver an engaging customer experience. And know the vulnerability of your project’s OSS components before you ship.
– InstallAnywhere's website
InstallAnywhere is a commercial/enterprise package that generates installers for Java-based programs. It's probably capable of creating .exe files.
Executable JAR files
As an alternative to .exe files, you can create a JAR file that automatically runs when double-clicked, by adding an entry point to the JAR manifest.
An excellent source of information on this topic is Excelsior's article "Convert Java to EXE – Why, When, When Not and How".
Launch4j is a cross-platform tool for wrapping Java applications distributed as jars in lightweight Windows native executables. The executable can be configured to search for a certain JRE version or use a bundled one, and it's possible to set runtime options, like the initial/max heap size. The wrapper also provides better user experience through an application icon, a native pre-JRE splash screen, a custom process name, and a Java download page in case the appropriate JRE cannot be found.
– Launch4j's website
UPDATE: GCJ is dead. It was officially removed from the GCC project in 2016. Even before that, it was practically abandoned for seven years, and in any case it was never sufficiently complete to serve as a viable alternative Java implementation.
Go find another Java AOT compiler.
GCJ: The GNU Compiler for Java can compile Java source code into native machine code, including Windows executables.
Although not everything in Java is supported under GCJ, especially the GUI components (see What Java API's are supported? How complete is the support? question from the FAQ). I haven't used GCJ much, but from the limited testing I've done with console applications, it seems fine.
One downside of using GCJ to create an standalone executable is that the size of the resulting EXE can be quite large. One time I compiled a trivial console application in GCJ and the result was an executable about 1 MB. (There may be ways around this that I am not aware of. Another option would be executable compression programs.)
In terms of open-source installers, the Nullsoft Scriptable Install System is a scriptable installer. If you're curious, there are user contributed examples on how to detect the presence of a JRE and install it automatically if the required JRE is not installed. (Just to let you know, I haven't used NSIS before.)
For more information on using NSIS for installing Java applications, please take a look at my response for the question "What's the best way to distribute Java applications?"
The GNU Java development has pretty much moved to OpenJDK, as the non-Oracle sources could not get access to the TCK for validation.
You could make a batch file with the following code:
and convert the .bat to an .exe using any .bat to .exe converter.
We're using Install4J to build installers for windows or unix environments.
It's easily customizable up to the point where you want to write scripts for special actions that cannot be done with standard dialogues. But even though we're setting up windows services with it, we're only using standard components.
- installer + launcher
- windows or unix
- scriptable in Java
- ant task
- lots of customizable standard panels and actions
- optionally includes or downloads a JRE
- can also launch windows services
- multiple languages
I think Launch4J is from the same company (just the launcher - no installer).
PS: sadly i'm not getting paid for this endorsement. I just like that tool.
The latest Java Web Start has been enhanced to allow good offline operation as well as allowing "local installation". It is worth looking into.
EDIT 2018: Java Web Start is no longer bundled with the newest JDK's. Oracle is pushing towards a "deploy your app locally with an enclosed JRE" model instead.
Apparently JWS has had security tightened so much, that it requires a lot more effort than previously to get running. It might still be useful for installers, though.
@hiran that is a reverse engineered version, not the real thing. Also it is not bundled which was the real advantage
IMHO JSmooth seems to do a pretty good job.
If you need to convert your entire application to native code, i.e. an EXE plus DLLs, there is ExcelsiorJET. I found it works well and provided an alternative to bundling a JRE.
EDIT: This was posted in 2010 - the product is no longer available.
I would say launch4j is the best tool for converting a java source code(.java) to .exe file You can even bundle a jre with it for distribution and the exe can even be iconified. Although the size of application increases, it makes sure that the application will work perfectly even if the user does not have a jre installed. It also makes sure that you are able to provide the specific jre required for your app without the user having to install it separately. But unfortunately, java loses its importance. Its multi platform support is totally ignored and the final app is only supported for windows. But that is not a big deal, if you are catering only to windows users.
You can use Janel. This last works as an application launcher or service launcher (available from 4.x).
As of JDK14, jpackage replaces javapackager mentioned in @Jay answer. The Windows version requires Wix 3.0 and it is fairly straightforward to take a java application and build an installer which provides EXE launcher.
It can also be used with jlink to build a cut-down Java runtime image which is bundled with the installer and only contains the set of modules needed to support your application. The jlink step will also be run implicitly by jpackage if no runtime is specified, but I prefer to make the JRE image separately as it will only change when you update JDK or add new module dependencies to your project.
Example main for Java class:
Here are example steps to build on Windows - obviously you'd set up your local build environment (Maven / ant / etc) to re-produce this:
Create a runtime image with jlink for the set of modules use by your application:
In case there are missing modules above, you should check the jlink JRE runtime image can run your app:
Use jpackage to generate installer, with app version based on date+hour (this saves on need to un-install every re-install) and to print out all system properties - remove the parameter "-XshowSettings:properties" after testing:
Run the installer:
Test the application:
Alternatively, you can use some java-to-c translator (e.g., JCGO) and compile the generated C files to a native binary (.exe) file for the target platform.
I'm very incredulous of this method's effeciveness. I'd have to see it to believe it (think about the fact that most Java code is API calls to the JRE, and all of that isn't present on C, nevermind the differences in how the language works).
I can be forgiven for being against converting a java program to a .exe Application and I have My reasons. the Major one being that a java program can be compiled to a jar file from A lot of IDE's. When the program is in .jar format, it can run in Multiple Platforms as opposed to .exe which would run Only in very limited Environment. I am for the Idea that Java Programs shoudl not be converted to Exe unless it is very neccesary. One can always write .bat files that runs the Java program while it is a jar file.
if it is really neccesary to convert it to exe, Jar2Exe converter silently does that and one can also attach Libraries that are compiled together with the Main Application.
The thing is, java's power is the portability, but a lot of people just need a basic windows exe. Personally, I love java's concept. but would like to distribute something my users could run, without having to download a JRE.
That's where Java's power lies, as now with the new 'javapackager' tool, you can wrap your jar files in formats that are suitable for all of Linux, macOS and Windows systems. Yes it's good to be able to use .jar files directly, but it ain't very user friendly. Instead it is better to wrap it in all possible formats for all systems instead of limiting the user to .exe for example, and providing them on the product's website or any other way of distribution.
You can convert jar to exe using jar2exe. However you need to purchase the software. If you need a open source software i would suggest JSmooth.
Cautionary note: Much has changed with packaging and deployment since this question was first asked. Most of the answers given are not even current with JIGSAW (Java 9+).
If the goal is to create OS specific packages, information is provided in Oracle Docs Java 17 Packaging Tool User Guide. This guide includes documentation for the jpackage tool, which allows one to create platform-specific packages for Linux, macOS and Windows. I assume the Windows-specific instructions should include arriving at an .exe file, since that remains the most familiar way for Windows users to install and run applications.
My own personal experience creating an exe (for sale on itch.io) was with the Java Platform, Standard Edition Deployment Guide, which included making use of the tool Inno Setup 5. This documentation is older, is for Java 9. The section directly pertaining to .exe packaging is located here As a first step, I used jlink to make a self-contained package. At the time I was first wrangling with this, I was unable to figure out how to get jpackage to work with my modular program. But now that Jigsaw has been around for several years, jpackage is now likely much easier to use, and would be my first choice for the next Java app I might publish for Windows users.
как создать сайт на wordpress, настроить и оптимизировать wordpress
Здравствуйте, сегодня попробуем написать простую программу на языке программирования Java, сохраним её в формате “exe”, после чего наша программа будет запускаться на любом компьютере с ОС Windows.
Создадим простенькую программку в формате EXE, которая попросит нас ввести для неё два числа и выведит для нас результат в виде этих же чисел, но только увеличенных на 1.
Приступим к созданию данной программы:
1. Устанавливаем бесплатную программу Eclipse
Скачиваем “Eclipse IDE for Java EE Developers”:
Здесь есть Eclipse как для 32 разрядной операционной системы, так и для 64 разрядной системы.
Как узнать какая у вас система?
Наведите правой клавишей мыши на ярлык “Мой компьютер”, выберите пункт “Свойства”:
Скачается zip-архив, если вы попробуете распаковать его встроенным в windows архиватором, то здесь могут возникнуть проблемы – процесс может затянуться на длительное время или вовсе с ошибкой. Лучше всего это сделать с помощью программ WinRAR или 7-zip.
2. Далее устанавливаем Комплект Разработчика Приложений на языке Java – Java Software Development Kit (Java SDK или JDK).
После установки JDK стоит проверить его работу – для этого – откройте командную строку снова (Пуск > Выполнить. В текстовом поле наберите «cmd» и нажмите «Enter».). Наберите команду «javac» (без кавычек, конечно).
4. Теперь осталось написать простенькую программу на языке программирования JAVA в программе Eclipse.
Урок 7: “youtu.be/lBE20G5l0YU”
Урок 8: “youtu.be/L-Ivs-ZfbT8”
Урок 14: “youtu.be/XUJsJ_loOkE”
Конечно же, лучше посмотреть все обучающие видео хотя бы с 1 по 14 урок, чтобы лучше разбираться в коде программы.
Благодаря урокам 7 и 8 у меня в программе Eclipse получилось 2 файла: main.java и reader.java.
Код файла main.java:
Код файла reader.java:
После того как вы напишите программу на Eclips сохранить её аналогично уроку 14, только тип файла нужно выбрать “Runnable JAR file”, а именно, вот так:
– кликаем мышкой на проект, который хотим сохранить:
– далее щелкните правой кнопкой мыши по вашему проекту и нажмите “Export” (Экспорт).
– откройте папку “Java” и дважды нажмите опцию “Runnable JAR file” (исполняемый архив JAR).
– Первое, что вы должны сделать, это выбрать главный класс (класс с основным методом) из выпадающего меню под “Launch configuration” (конфигурации запуска).
Во-вторых, выберите “Export destination” (Место экспорта) с помощью кнопки “Browse…” (Обзор) или вручную, вводя месторасположение.
И в-третьих, обеспечьте выбор переключателя “Extract required libraries into generated JAR”(Извлечь необходимые библиотеки в созданные JAR) “.
И, наконец, нажмите кнопку “Finish” (Готово).
Выкладываю вам JAR файл, который у меня получился – скачать JAR файл можно по следующей ссылке – “yadi.sk/d/o0Q8iWE7rQTZp”
5. А далее сохраним нашу программу на JAVA с помощью программы launch4j в exe файл.
В первом текстовом поле введите или выберите с помощью просмотра место, где исполняемый файл хотите сохранить. Убедитесь, что имя файла имеет “.exe” в конце названия!
Во втором текстовом поле введите или выберите с помощью просмотра файл .jar, ранее экспортированного из Eclipse.
В четвертом текстовом поле с надписью “Icon:” можно выбрать иконку для программы, однако, это не является обязательным, и если его оставить пустым, ваша ОС вернется к своему значку по умолчанию исполняемого файла.
На вкладке “JRE” в верхнем меню выберите “Min JRE version” и введите “1.4.0”. Это гарантирует, что пользователи имеют нужную версию Java для использования вашей программы. Вы можете изменить это, но 1.4.0 является безопасной версией.
Программа вместе с exe файлом создаст и файл .xml, дайте ему соответствующее имя и нажмите “Save”. Файл .xml является стандартным, не волнуйтесь об этом. Сразу после создания .xml файла будет создан exe файл.
9 сентября 2013 Мария (admin)
В этом уроке мы создадим нашу первую программу на языке Java.
Создание приложения на языке Java состоит из трех следующих шагов:
Создание исходного файла
Для начала нужно написать текст программы на языке Java и сохранить его. Это и будет нашим исходным файлом. Для создания исходного файла подойдет любой текстовый редактор, например стандартный «Блокнот». Однако, существуют и другие текстовые редакторы, которые более удобны для написания кода. Можно воспользоваться например, Notepad++ . Это бесплатный текстовый редактор, который поддерживает синтаксис большинства языков программирования, в том числе и Java.
После написания этого кода, файл нужно сохранить под именем HelloWorld.java.
Для этого в вашем текстовом редакторе нужно выбрать пункт меню Файл-> Сохранить как… Если вы пользуетесь стандартным Блокнотом Windows, то для того, чтобы сохранить файл с расширением .java необходимо при сохранении выбрать Тип файла: Все файлы и ввести Имя файла: HelloWorld.java (рис 2.1).
Если вы пользуетесь Notepad++ то нужно выбрать Тип файла:Java source file (*.java)
Будьте внимательны! файл должен называться в точности так, как называется наш класс — HelloWorld. Так же важно учитывать регистр букв. HelloWorld и helloworld в данном случае это разные слова!
Обратите также внимание на кодировку в которой сохраняете файл. Должно быть выбрано ANSI . В Notepad++ кодировку можно установить в меню Кодировки.
Компиляция исходного файла
Исходный файл с кодом программы создан, теперь перейдем к компиляции. Для компиляции Java предназначен компилятор javac, который входит в состав установленного нами в первом уроке пакета JDK.
Для того, чтобы скомпилировать исходный файл, открываем командную строку. Для этого в меню Windows Пуск в строке поиска вводим команду cmd и жмем Enter. После этого откроется командное окно.
Теперь в нем нужно изменить текущий каталог на тот, в котором находится наш исходный файл (например C:\studyjava\). Для этого вводим следующую команду:
и нажимаем Enter.
После того, как директория изменилась, вводим команду компиляции
После этого, окно командной строки должно выглядеть следующим образом (рис 2.2):
То есть, мы не получим никакого подтверждения, о том, что программа скомпилировалась успешно. Однако, в папке с нашим исходным файлом, должен появиться файл HelloWorld.class. Это можно проверить с помощью команды
Эта команда выводит на экран список всех файлов, находящихся в выбранной директории (рис 2.3).
Если файл HelloWorld.class присутствует в этом списке, то это значит, что программа скомпилировалась успешно.
Если в коде программы есть ошибка, то компилятор Java при компиляции нам об этом сообщит.
Запуск программы
Переходим к последней стадии — запуску программы.
Вводим в командном окне:
Еще раз обратите внимание на чувствительность к регистру в Java. Если вы напишете helloworld вместо HelloWorld, то программа запущена не будет, потому что Java попросту не найдет файл с таким именем.
Конечно, для написания, компилирования и запуска программ на языке Java существуют более удобный инструмент, нежели Блокнот и командная строка . Этот так называемая Интегрированная среда обработки IDE. Об этом мы поговорим в следующем уроке.
Категория: Уроки Java
Комментариев к записи: 95
Весьма позновательные уроки. Спасибо вам большое. То что надо для начинающих. Объязательно продолжу учиться по вашим урокам!
по этой ошибке ничего нового к тому, что я уже писала в коментариях не добавлю
Не очень понятно,что означает каждая строка в написании программы(почему такой отступ,зачем фигурные скобки,два слэша)? И как я понимаю для каждой программы свой формат написания.Знать бы как для каждого случая подобрать свой формат)
формат для каждой программы одинаковый. Тело класса заключается в фигурные скобки, чтобы было понятно где начало, а где конец, тело методов тоже в фигурных скобках, чтобы обозначиь их границы. Отступы нужны с эстетической точки зрения, чтобы код было легко читать. Двумя слешами обозначается комментарий в коде.
9 сентября 2013 Мария (admin)
В этом уроке мы создадим нашу первую программу на языке Java.
Создание приложения на языке Java состоит из трех следующих шагов:
Создание исходного файла
Для начала нужно написать текст программы на языке Java и сохранить его. Это и будет нашим исходным файлом. Для создания исходного файла подойдет любой текстовый редактор, например стандартный «Блокнот». Однако, существуют и другие текстовые редакторы, которые более удобны для написания кода. Можно воспользоваться например, Notepad++ . Это бесплатный текстовый редактор, который поддерживает синтаксис большинства языков программирования, в том числе и Java.
После написания этого кода, файл нужно сохранить под именем HelloWorld.java.
Для этого в вашем текстовом редакторе нужно выбрать пункт меню Файл-> Сохранить как… Если вы пользуетесь стандартным Блокнотом Windows, то для того, чтобы сохранить файл с расширением .java необходимо при сохранении выбрать Тип файла: Все файлы и ввести Имя файла: HelloWorld.java (рис 2.1).
Если вы пользуетесь Notepad++ то нужно выбрать Тип файла:Java source file (*.java)
Будьте внимательны! файл должен называться в точности так, как называется наш класс — HelloWorld. Так же важно учитывать регистр букв. HelloWorld и helloworld в данном случае это разные слова!
Обратите также внимание на кодировку в которой сохраняете файл. Должно быть выбрано ANSI . В Notepad++ кодировку можно установить в меню Кодировки.
Компиляция исходного файла
Исходный файл с кодом программы создан, теперь перейдем к компиляции. Для компиляции Java предназначен компилятор javac, который входит в состав установленного нами в первом уроке пакета JDK.
Для того, чтобы скомпилировать исходный файл, открываем командную строку. Для этого в меню Windows Пуск в строке поиска вводим команду cmd и жмем Enter. После этого откроется командное окно.
Теперь в нем нужно изменить текущий каталог на тот, в котором находится наш исходный файл (например C:\studyjava\). Для этого вводим следующую команду:
и нажимаем Enter.
После того, как директория изменилась, вводим команду компиляции
После этого, окно командной строки должно выглядеть следующим образом (рис 2.2):
То есть, мы не получим никакого подтверждения, о том, что программа скомпилировалась успешно. Однако, в папке с нашим исходным файлом, должен появиться файл HelloWorld.class. Это можно проверить с помощью команды
Эта команда выводит на экран список всех файлов, находящихся в выбранной директории (рис 2.3).
Если файл HelloWorld.class присутствует в этом списке, то это значит, что программа скомпилировалась успешно.
Если в коде программы есть ошибка, то компилятор Java при компиляции нам об этом сообщит.
Запуск программы
Переходим к последней стадии — запуску программы.
Вводим в командном окне:
Еще раз обратите внимание на чувствительность к регистру в Java. Если вы напишете helloworld вместо HelloWorld, то программа запущена не будет, потому что Java попросту не найдет файл с таким именем.
Конечно, для написания, компилирования и запуска программ на языке Java существуют более удобный инструмент, нежели Блокнот и командная строка . Этот так называемая Интегрированная среда обработки IDE. Об этом мы поговорим в следующем уроке.
Категория: Уроки Java
Комментариев к записи: 95
Скажите, пожалуйста, почему первую программу во всех учебниках (во всяком
случае, в тех, которые я смотрел) называют HelloWorld, разве нельзя назвать её как-то по-другому, далее сохранив файл программы под соответствующим именем?
А если можно, то, думаю, будет лучше, если в тексте урока указать, что программу можно называть, как УГОДНО! (естественно, не в кириллице)
И конечно же, СПАСИБО за уроки!
Здравствуйте, просто так принято, а называть, конечно, можете как хотите
Мария, здравствуйте.
Возник ещё вопрос.
Можно ли класс назвать, например, Goga, а файлу присвоить другое имя, например Djon.java, а затем, когда будем компилировать, указать файл Djon.java, а когда будем запускать программу, указать уже Goga?
Простите, за назойливость! Я где-то читал, что можно считать, что чему-то научился, когда один и тот же результат, можешь достичь хотя бы двумя способами.
С уважением, и благодарностью за ВНИМАНИЕ и УРОКИ!
Нет нельзя, файлу присваивается то же имя, что и классу, причем, регистр букв тоже должен совпадать. Вы можете попробовать, если интересно, программа должна выдать ошибку
Мария, простите, ещё — просьба.
Несколько забегая вперёд, можно ли сказать несколько слов о содержании самой программы, про эти слова: класс, паблик, статик, воид, принтлн?
Ну хоть что-то. )
Несколько слов об этом есть в уроке 5. Более подробно это будет рассматриваться далее в уроках посвященных объектно ориентрованному программированию (они еще не написаны).
Пожалуйста:)
Здравствуйте, выводит ошибку. Придирается к точке между System и out со словами cannot find symbol. Почему так происходит и как это решить?
9 сентября 2013 Мария (admin)
В этом уроке мы создадим нашу первую программу на языке Java.
Создание приложения на языке Java состоит из трех следующих шагов:
Создание исходного файла
Для начала нужно написать текст программы на языке Java и сохранить его. Это и будет нашим исходным файлом. Для создания исходного файла подойдет любой текстовый редактор, например стандартный «Блокнот». Однако, существуют и другие текстовые редакторы, которые более удобны для написания кода. Можно воспользоваться например, Notepad++ . Это бесплатный текстовый редактор, который поддерживает синтаксис большинства языков программирования, в том числе и Java.
После написания этого кода, файл нужно сохранить под именем HelloWorld.java.
Для этого в вашем текстовом редакторе нужно выбрать пункт меню Файл-> Сохранить как… Если вы пользуетесь стандартным Блокнотом Windows, то для того, чтобы сохранить файл с расширением .java необходимо при сохранении выбрать Тип файла: Все файлы и ввести Имя файла: HelloWorld.java (рис 2.1).
Если вы пользуетесь Notepad++ то нужно выбрать Тип файла:Java source file (*.java)
Будьте внимательны! файл должен называться в точности так, как называется наш класс — HelloWorld. Так же важно учитывать регистр букв. HelloWorld и helloworld в данном случае это разные слова!
Обратите также внимание на кодировку в которой сохраняете файл. Должно быть выбрано ANSI . В Notepad++ кодировку можно установить в меню Кодировки.
Компиляция исходного файла
Исходный файл с кодом программы создан, теперь перейдем к компиляции. Для компиляции Java предназначен компилятор javac, который входит в состав установленного нами в первом уроке пакета JDK.
Для того, чтобы скомпилировать исходный файл, открываем командную строку. Для этого в меню Windows Пуск в строке поиска вводим команду cmd и жмем Enter. После этого откроется командное окно.
Теперь в нем нужно изменить текущий каталог на тот, в котором находится наш исходный файл (например C:\studyjava\). Для этого вводим следующую команду:
и нажимаем Enter.
После того, как директория изменилась, вводим команду компиляции
После этого, окно командной строки должно выглядеть следующим образом (рис 2.2):
То есть, мы не получим никакого подтверждения, о том, что программа скомпилировалась успешно. Однако, в папке с нашим исходным файлом, должен появиться файл HelloWorld.class. Это можно проверить с помощью команды
Эта команда выводит на экран список всех файлов, находящихся в выбранной директории (рис 2.3).
Если файл HelloWorld.class присутствует в этом списке, то это значит, что программа скомпилировалась успешно.
Если в коде программы есть ошибка, то компилятор Java при компиляции нам об этом сообщит.
Запуск программы
Переходим к последней стадии — запуску программы.
Вводим в командном окне:
Еще раз обратите внимание на чувствительность к регистру в Java. Если вы напишете helloworld вместо HelloWorld, то программа запущена не будет, потому что Java попросту не найдет файл с таким именем.
Конечно, для написания, компилирования и запуска программ на языке Java существуют более удобный инструмент, нежели Блокнот и командная строка . Этот так называемая Интегрированная среда обработки IDE. Об этом мы поговорим в следующем уроке.
Категория: Уроки Java
Читайте также: