Linux запуск jar файла

How to Create and Execute a .Jar File in Linux Terminal

A JAR (Java ARchive) is platform-independent file format used to aggregate many Java class files and associated metadata and resources such as text, images, etc, into a single file for distribution.

It allows Java runtimes to efficiently deploy an entire application in one archive file, and provides many benefits such as security, its elements may be compressed, shortening download times, allows for package sealing and versioning, supports portability. It also supports packaging for extensions.

In this article, we will show how to create a simple Java application and bundle it into a JAR file, and demonstrate how to execute a .jar file from the Linux terminal.

To do this, you must have java command line tool installed to launche a Java application, and the -jar flag to execute a program encapsulated in a JAR file. When this flag is used, the specified JAR file is the source of all user classes, and other class path settings are ignored.

How to Create a JAR File in Linux

1. First start by writing a simple Java class with a main method for an application called TecmintApp, for demonstration purpose.

Copy and paste the following code to TecmintApp.java file.

Save the file and close it.

2. Next, we need to compile and pack the class into a JAR file using the javac and jar utilities as shown.

$ javac -d . TecmintApp.java $ ls $ jar cvf tecmintapp.jar TecmintApp.class $ ls

3. Once tecmintapp.jar created, now you can excute the file using java command as shown.

$ java -jar tecmintapp.jar no main manifest attribute, in tecmintapp.jar 

From the output of the above command, we encountered an error. The JVM (Java Virtual Machine) couldn’t find our main manifest attribute, thus it could not locate the main class containing the main method (public static void main (String[] args)).

The JAR file should have a manifest that contains a line in the form Main-Class:classname that defines the class with the main method that serves as our application’s starting point.

4. To fix the above error, we will need to update the JAR file to include a manifest attribute together with our code. Let’s create a MANIFEST.MF file.

Copy and paste the following line to MANIFEST.MF file.

Save the file and let’s add the file MANIFEST.MF to our tecmintapp.jar using following command.

$ jar cvmf MANIFEST.MF tecmintapp.jar TecmintApp.class

5. Finally, when we executed the JAR file again, it should produce the expected result as shown in the output.

$ java -jar tecmintapp.jar Just executed TecmintApp! 

For more information, see the java, javac and jar command man pages.

$ man java $ man javac $ man jar

That’s all! In this short article, we have explained how to create a simple Java application and bundle it into a JAR file, and demonstrated how to execute a .jar file from the terminal. If you have any questions or supplementary ideas to share, use the feedback form below.

Читайте также:  See all installed packages linux

Источник

Как запустить jar в Linux

Java — это кроссплатформенный язык программирования, благодаря которому программы, написанные один раз, можно запускать в большинстве операционных систем: в Windows, Linux и даже MacOS. И всё это без каких-либо изменений.

Но программы, написанные на Java, распространяются в собственном формате .jar, и для их запуска необходимо специальное ПО — Java-машина. В этой небольшой статье мы рассмотрим, как запустить jar-файл в Linux.

Как запустить jar Linux

Как я уже сказал, для запуска jar-файлов нам необходимо, чтобы на компьютере была установлена Java-машина. Если вы не собираетесь ничего разрабатывать, вам будет достаточно Java Runtime Environment или JRE. Что касается версии, то, обычно, большинство программ работают с 7 или 8 версией. Если нужна только восьмая, то разработчики прямо об этом сообщают. Посмотреть версию Java и заодно убедиться, что она установлена в вашей системе, можно с помощью команды:

У меня установлена восьмая версия, с пакетом обновлений 171. Если вы получаете ошибку, что команда не найдена, то это значит, что вам нужно установить java. В Ubuntu OpenJDK JRE можно установить командой:

sudo apt install openjdk-8-jre

Если вы хотите скомпилировать пример из этой статьи, то вам понадобиться не JRE, а JDK, её можно установить командой:

sudo apt install openjdk-8-jdk-headless

Чтобы узнать, как установить Java в других дистрибутивах, смотрите статью по ссылке выше. Когда Java будет установлена, вы можете очень просто запустить любой jar-файл в Linux, передав путь к нему в качестве параметра Java-машине. Давайте для примера создадим небольшое приложение:

public class Main public static void main(String[] args) System.out.println(» Losst test app! «);
>
>

Затем скомпилируем наше приложение в jar-файл:

javac -d . Main.java
jar cvmf MANIFEST.MF main.jar Main.class

Теперь можно запустить наш jar-файл командой java с параметром -jar:

Таким образом вы можете запустить любой jar-файл, который собран для вашей версии Java. Но не очень удобно каждый раз открывать терминал и прописывать какую-либо команду. Хотелось бы запускать программу по щелчку мышки или как любую другую Linux-программу — по имени файла.

Если мы дадим программе право на выполнение:

И попытаемся её запустить, то получим ошибку:

Чтобы её исправить, нам понадобиться пакет jarwrapper:

sudo apt install jarwrapper

Теперь можно запускать java в Linux по щелчку мыши или просто командой.

Выводы

В этой небольшой статье мы рассмотрели, как запустить jar Linux с помощью java-машины, а также как упростить команду запуска. Если у вас остались вопросы, спрашивайте в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

🐧 Как запустить JAR-файл на Linux

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

Для того чтобы запустить эти файлы в системе Linux, необходимо сначала установить программное обеспечение Java Runtime Environment (JRE).

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

Обычно пакет JRE не установлен в большинстве дистрибутивов Linux по умолчанию, поэтому мы должны сначала установить Java, а затем открыть файл(ы) JAR.

В этом руководстве мы покажем вам, как установить Java Runtime Environment на все основные дистрибутивы Linux.

Это позволит вам открывать JAR-файлы независимо от того, какой дистрибутив Linux вы используете.

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

Читайте также:  Linux сброс счетчика ввода пароля

Как установить JRE на все основные дистрибутивы Linux

Первое, что нам нужно сделать, это установить Java Runtime Environment, чтобы мы могли открывать файлы JAR.

Вы можете использовать соответствующую команду ниже, чтобы установить Java JRE с помощью менеджера пакетов вашей системы.

Чтобы установить Java JRE на Ubuntu, Debian, Linux Mint, MX Linux и Kali Linux:

$ sudo apt update $ sudo apt install default-jre

Чтобы установить Java JRE на Fedora, CentOS, Alma Linux, RockyLinux и Red Hat:

$ sudo dnf install java-latest-openjdk

Чтобы установить Java JRE на Arch Linux и Manjaro:

Запуск JAR-файла из командной строки

Запуск JAR-файла из командной строки очень прост.

Мы можем использовать следующий синтаксис:

Если JAR-файл имеет компонент GUI, он будет запущен на вашем экране.

В противном случае текст будет выведен на терминал.

Заключение

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

Единственная хитрость здесь заключается в том, что сначала нам нужно установить среду выполнения Java, которая имеет различные инструкции в зависимости от используемого дистрибутива Linux.

После установки программы JRE мы можем запускать JAR-файлы как из командной строки, так и из графического интерфейса.

Источник

How can I execute a .jar file from the terminal

I am trying to execute a Minecraft.jar file

I know that to execute a file, I use the . command, then the file name with a space between them. But I’m trying to execute a .jar file using the . and it does not work. I went into the properties and marked it as executable and made it run with Java. Is there a way to execute a file with Java in the Bash Terminal? I am trying to execute the Minecraft.jar file.

Hello and welcome, jaorizabal. I slightly corrected your question. Maybe you can install a spell checker for your browser, to improve the next question yourself. Another hint: For text issues, you may mark text with your mouse in the terminal, and then paste it into the edit field of your browser (and elsewhere) with a middle click on the scroll wheel. Then you can layout your code with the buttons at the edit field. This is much faster than taking a screen shot, and uploading it.

9 Answers 9

The . syntax can only be used to run (by «sourcing») shell scripts.

You’ll need to use the java command to run a .jar file:

If you don’t have java installed, you can fix that by installing the default-jre ¹ package. You can see if you already have java installed by running in a terminal:

[1]: This will install the default openjdk Java runtime. You can use openjdk-8-jre , or openjdk-7-jre , or openjdk-6-jre instead, if you prefer — whichever is available on your version of Ubuntu.

Linux is perfectly capable of running a foreign binary, like a JAR file. This is how Wine works, for example. To run JAR files as executable do the following in a console

sudo apt-get install binfmt-support 

Cd to your JAR file and change it to executable (you can also do this through file properties in Nautilus)

Run your jar file just as if it was any other binary executable or shell script

Note: Be sure you have binfmt_misc linux kernel module loaded. If you use your custom compiled kernel without this module, binfmt-support won’t work.

Thanks! This is exactly what I was looking for. It’s better than using java -jar because it doesn’t require the host program to know that it is a java program, and it’s better than using a script because you don’t have to worry about passing through STDIN and OUT.

Читайте также:  Openssh server linux настройка

If it is an executable jar, then

Not all jar-Archives contain an executable class, declared to be started in the Manifest file, but if there is, this will work.

Btw.: You don’t start most programs from the shell with the dot. The dot is a shortcut for source , and it only works in the bash and some other shells, to include a script in the scope of the current session.

A compiled binary xybin is simply started with its name if it is in the path:

or, with its absolute path:

or with its relative path:

or if you happen to be in the directory of the file, with this relative path:

The file has to be marked executable for you (see: chmod). All of the above is true for shellscripts too, but they often have an extension .sh, and you can start a shellscript by invoking the interpreter, and then it needn’t be marked executable:

If you don’t want to start a new bash, you can use source, and you do so, to consume function definitions, aliases and variable settings.

You might as well want to make a nice entry for the application in Unity. execute the following commands:

gedit ~/.local/share/applications/minecraft.desktop 

In the window that pops up, copy and paste the following:

[Desktop Entry] Type=Application Name=Minecraft Comment=Click here to play Minecraft Exec=java -jar /path/to/minecraft.jar Icon=/path/to/minecraft/icon.png Terminal=false Categories=Game; 

You might need to log out and back in to see the effects. 🙂 Also you need to search the internet for a nice lookin Minecraft icon since they don’t provide one with the download..

  1. Open a command prompt with CTRL + ALT + T
  2. Go to your «.jar» file directory. If your Ubuntu version / flavour supports it, you should be able to right click on your «.jar» file’s directory and click «Open in Terminal»
  3. Type the following command:

This way your «.jar» file will execute.

Install jarwrapper. After that (and by adding the executable bit) you can start the jar file just by entering the jarfile name.

sudo apt-get install jarwrapper 

This works by using binfmt to add support for a new binary format to the kernel.

 java -jar /home/username/.minecraft/launcher.jar 

New answer to an old question

Executing a jar file using the regular syntax ./app.jar (instead of java -jar ), is easy to achieve, as explained here: how to create executable jars.

Basically, JAR is a variant of ZIP, which allows random bytes to be pre/appended to the JAR without corrupting it. This means it is possible to prepend a launcher script at the beginning of the jar to make it «executable».

Here is a simple example of turning a «normal» jar into an executable one:

# Append a basic launcher script to the jar cat \ <(echo '#!/bin/sh')\ <(echo 'exec java -jar $0 "$@"')\ <(echo 'exit 0')\ original.jar >executable.jar # Make the new jar executable chmod +x executable.jar 

With this, you can now run ./executable.jar instead of java -jar original.jar . This works on all unix like systems including Linux, MacOS, Cygwin, and Windows Linux subsystem.

Источник

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