Problema ao executar o arquivo jar no Ubuntu

2

Por que um script .jar é executado quando eu o executo como %código%, mas não funciona quando eu executo como java -jar myfile.jar

    
por user3751936 20.03.2015 / 08:08

2 respostas

5

Quando você executa seu jar usando java -jar myfile.jar , está dizendo ao shell para executar o comando java e passar alguns argumentos que java entende. No entanto, quando você está usando o ./myfile.jar , você está pedindo ao shell para determinar com qual interruptor o executará, o que não é possível.

O shell procura a linha shebang no começo do script para saber com qual aplicativo executar o script, e é por isso que você verá scripts de shell começando com:

#!/bin/bash

Ou scripts python começam com

#!/usr/bin/python

O que você está dizendo ao shell, basicamente, é executar o script usando o aplicativo que você encontra em /bin/bash ou /usr/bin/python . No caso do seu arquivo jar, o shell não consegue encontrar o shebang, por isso não sabe como executar o código.

No passado, usei scripts de wrapper para executar aplicativos Java, algo semelhante a:

#!/bin/bash

java -jar /path/to/myfile.jar

Então você só precisa fazer esse executável, usando chmod e você pode executá-lo como faria com qualquer outro script de shell.

    
por AJefferiss 20.03.2015 / 08:40
0

Eu tinha instalado o jdk usando o sudo apt-get install o openjdk-7-jdk e o jre usando o sudo apt-get install o openjdk-7-jre, mas ainda estava enfrentando esse problema. Eu pensei que isso pode ser devido à razão que meu sistema não foi capaz de encontrar o caminho java. Finalmente, quando instalei o oracle jdk7 installer usando os seguintes comandos, consegui executar o arquivo .jar usando o comando ./myfile.jar. Eu usei os seguintes comandos para instalá-lo:

sudo add-apt-repositório ppa: webupd8team / java

sudo apt-get update

sudo apt-get instala o oracle-jdk7-installer

    
por user3751936 24.03.2015 / 16:06