Come posso rendere eseguibile un file .jar?


11

Sto cercando di eseguire un'applicazione jar sotto Ubuntu, quindi ho installato OpenJDK Java 7 Runtime, ma quando apro questa applicazione ho ricevuto questo messaggio:

Il file '/home/aimad/Programms/jMerise/JMerise.jar' non è contrassegnato come eseguibile. Se questo è stato scaricato o copiato da una fonte non attendibile, potrebbe essere pericoloso eseguirlo. Per maggiori dettagli, leggi il bit eseguibile.

Risposte:


17

Puoi sempre eseguire un file jar facendo java -jar JMerise.jar.

Tuttavia, per rendere eseguibile il file jar stesso, è necessario impostare il bit eseguibile, come suggerisce il messaggio. chmod +x /home/aimad/Programms/jMerise/JMerise.jarci riuscirà.

Dopodiché puoi farlo ./JMerise.jarper eseguirlo.

man chmod ti fornirà informazioni su come funziona chmod.

Vedi anche: https://wiki.ubuntu.com/Security/ExecutableBit


7

Fai clic destro sul file, fai clic su Proprietà, quindi vai alla scheda Autorizzazioni e seleziona la casella "Consenti l'esecuzione di questo file come programma".

inserisci qui la descrizione dell'immagine


Che dire se non riesco a selezionare la casella sopra per "consentire l'esecuzione del file come programma"? Lo controllo, ma un attimo dopo viene automaticamente deselezionato!
user961627,

@ user961627 Probabilmente hai il file .jar archiviato in una partizione che non supporta il bit eseguibile. Vedi Impossibile rendere eseguibile un file per maggiori dettagli.
wjandrea,

4

Per prima cosa devi assicurarti di avere un ambiente runtime Java adatto sul tuo sistema. Ubuntu ha openjdk nel repository ufficiale che è 99,99% combattibile con Oracle Java, per installarlo digitare:

sudo apt-get install openjdk-7-jre

Successivo creare un file chiamato java-jar-launcher.desktopin ~/.local/share/applicationse mettere i seguenti contenuti in esso:

[Desktop Entry]
Type=Application
Name=Java Application Launcher
Icon=java
Exec=/usr/bin/java -jar %U
Categories=Application;Java
Terminal=False

Quindi aggiungere la seguente riga in ~/.local/share/applications/mimeapps.list:

application/x-java-archive=java-jar-launcher.desktop;

Ora dovresti essere in grado di fare doppio clic sui file jar per avviarli, se non succede nulla, fai clic con il pulsante destro del mouse su un file jar, seleziona le proprietà quindi vai alla scheda "Apri con" e lì dovresti vedere "Java Application Launcher", seleziona quello .

Questo metodo è preferibile (IMHO) perché in questo modo non si danno autorizzazioni di esecuzione a file jar che possono essere potenzialmente pericolosi. Questo metodo funziona solo in un ambiente grafico e richiede all'utente di fare doppio clic manualmente sul file.


2

Dal momento che esegui l'applicazione jar con, java -jar application.jarciò significa che Java è sul tuo percorso. Hai bisogno di due cose semplici: 1) aggiungi un interprete (che apparentemente lo è #!java -jar) nella prima riga del tuo file jar, come fai con gli script della shell: echo '#!java -jar' > app.jar cat application.jar >> app.jar mv app.jar application.jar

Se cerchi il contenuto del tuo file jar, vedrai che inizia con es .: #!java -jar PK ^lN BOOT-INF/PK ..... ..... 2) aggiungi attributo execute da chmod +x application.jar Ora puoi "eseguirlo da solo" tramite ./application.jar.


0

Se l'esecuzione di un file .jar dalla riga di comando funziona ( java -jar myFile.jar), ma facendo doppio clic su di esso nella GUI non funziona, e se sudo chmod +x myFile.jarsembra avere successo, ma non è ancora possibile aprirlo con un doppio clic e se si fa clic con il tasto destro del mouse su .jar file> Proprietà> Autorizzazioni> "Consenti l'esecuzione del file come programma" non funziona (ovvero, la casella di controllo torna indietro subito dopo aver fatto clic), quindi probabilmente il file .jar si trova su un file system NTFS, che non consente l'esecuzione di autorizzazioni su una base per file. (Potresti avere questo problema se avvii il dual boot, ad esempio, e hai una partizione NTFS condivisa tra Ubuntu e Windows).

La creazione di un launcher (come descrive @ tusharkant15) funzionerà perché dietro le quinte che stai eseguendo /usr/bin/java, non il file .jar stesso. Anche lo spostamento del file .jar in un altro file system che non è NTFS funzionerà.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.