Estou tentando executar um aplicativo jar no Ubuntu, então instalei o OpenJDK Java 7 Runtime, mas quando abro esse aplicativo, recebi esta mensagem:
O arquivo '/home/aimad/Programms/jMerise/JMerise.jar' não está marcado como executável. Se isso foi baixado ou copiado de uma fonte não confiável, pode ser perigoso executar. Para mais detalhes, leia sobre o bit executável.
Primeiro, você precisará garantir um ambiente de tempo de execução Java adequado em seu sistema. O Ubuntu possui o openjdk no repositório oficial, que é 99,99% combatível com o Oracle Java, para instalá-lo, digite:
sudo apt-get install openjdk-7-jre
Em seguida, crie um arquivo chamado
java-jar-launcher.desktop
em~/.local/share/applications
e colocar o seguinte conteúdo nele:Em seguida, adicione a seguinte linha em
~/.local/share/applications/mimeapps.list
:application/x-java-archive=java-jar-launcher.desktop;
Agora você deve ser capaz de clicar duas vezes nos arquivos jar para iniciá-los; se nada acontecer, clique com o botão direito do mouse em um arquivo jar, selecione propriedades e vá para a aba "Abrir com" e você verá "Java Application Launcher". .
Esse método é preferível (IMHO), pois dessa forma você não concede permissões de execução aos arquivos jar que podem ser potencialmente perigosos. Esse método funcionará apenas em um ambiente gráfico e precisa que o usuário dê um clique duplo no arquivo manualmente.
fonte
Desde que você executa seu aplicativo jar
java -jar application.jar
, isso significa que o java está no seu caminho. Você precisa de duas coisas simples: 1) adicione um intérprete (o que aparentemente é#!java -jar
) na primeira linha do seu arquivo jar, exatamente como você faz com seus scripts de shell:echo '#!java -jar' > app.jar cat application.jar >> app.jar mv app.jar application.jar
Se você selecionar o conteúdo do seu arquivo jar, verá que ele começa com ex:
#!java -jar PK ^lN BOOT-INF/PK ..... .....
2) add attribute execute bychmod +x application.jar
Agora você pode "executá-lo" via./application.jar
.fonte
Se a execução de um arquivo .jar a partir da linha de comando funcionar (
java -jar myFile.jar
), mas clicar duas vezes na GUI, não, e se forsudo chmod +x myFile.jar
bem-sucedida, mas você ainda não poderá abrir com um clique duplo, e se clicar com o botão direito do mouse em .jar arquivo> Propriedades> Permissões> "Permitir a execução de arquivo como programa" não funciona (ou seja, a caixa de seleção volta logo após clicar nele), provavelmente o arquivo .jar está em um sistema de arquivos NTFS, que não permite permissões de execução em por arquivo. (Você pode ter esse problema se inicializar duas vezes, por exemplo, e tiver uma partição NTFS compartilhada entre o Ubuntu e o Windows).Criar um iniciador (como @ tusharkant15 descreve) funcionará porque nos bastidores você está executando
/usr/bin/java
, não no arquivo .jar em si. Mover o arquivo .jar para outro sistema de arquivos que não seja NTFS também funcionará.fonte