Próbuję uruchomić aplikację jar w systemie Ubuntu, więc zainstalowałem środowisko wykonawcze Java 7 OpenJDK, ale kiedy otwieram tę aplikację, pojawia się następujący komunikat:
Plik „/home/aimad/Programms/jMerise/JMerise.jar” nie jest oznaczony jako wykonywalny. Jeśli został pobrany lub skopiowany z niezaufanego źródła, jego uruchomienie może być niebezpieczne. Aby uzyskać więcej informacji, przeczytaj o bicie wykonywalnym.
Najpierw upewnij się, że masz odpowiednie środowisko wykonawcze Java w swoim systemie. Ubuntu ma openjdk w oficjalnym repozytorium, które jest w 99,99% kompatybilne z Oracle Java, aby zainstalować:
sudo apt-get install openjdk-7-jre
Następnie tworzymy plik o nazwie
java-jar-launcher.desktop
w~/.local/share/applications
i umieścić w nim następującą zawartość:Następnie dodaj następujący wiersz
~/.local/share/applications/mimeapps.list
:application/x-java-archive=java-jar-launcher.desktop;
Teraz powinno być możliwe dwukrotne kliknięcie plików jar w celu ich uruchomienia. Jeśli nic się nie stanie, kliknij plik jar w prawym przyciskiem myszy, wybierz właściwości, a następnie przejdź do zakładki „Otwórz za pomocą” i tam powinieneś zobaczyć „Java Application Launcher”, wybierz .
Ta metoda jest preferowana (IMHO), ponieważ w ten sposób nie udzielasz uprawnień do wykonywania plików jar, które mogą być potencjalnie niebezpieczne. Ta metoda działa tylko w środowisku graficznym i wymaga ręcznego dwukrotnego kliknięcia pliku.
źródło
Ponieważ uruchamiasz
java -jar application.jar
wtedy aplikację jar , oznacza to, że Java jest na twojej drodze. Potrzebujesz dwóch prostych rzeczy: 1) dodaj interpreter (który najwyraźniej jest#!java -jar
) do pierwszego wiersza pliku jar jar tak, jak robisz to za pomocą skryptów powłoki:echo '#!java -jar' > app.jar cat application.jar >> app.jar mv app.jar application.jar
Jeśli wybierzesz zawartość swojego pliku jar, zobaczysz, że zaczyna się on od np .:
#!java -jar PK ^lN BOOT-INF/PK ..... .....
2) dodaj atrybut wykonania dochmod +x application.jar
Teraz możesz go „uruchomić” samodzielnie./application.jar
.źródło
Jeśli uruchamianie pliku .jar z wiersza polecenia działa (
java -jar myFile.jar
), ale dwukrotne kliknięcie go w interfejsie GUI nie działa, a jeślisudo chmod +x myFile.jar
wydaje się, że powiodło się, ale nadal nie można otworzyć podwójnym kliknięciem i kliknięcie prawym przyciskiem myszy .jar plik> Właściwości> Uprawnienia> „Zezwalaj na uruchamianie pliku jako programu” nie działa (tzn. pole wyboru zmienia się zaraz po kliknięciu), prawdopodobnie plik .jar znajduje się w systemie plików NTFS, który nie zezwala na wykonywanie uprawnień na na podstawie pliku. (Ten problem może występować na przykład podczas podwójnego rozruchu i wspólnej partycji NTFS między Ubuntu i Windows).Utworzenie programu uruchamiającego (jak opisuje @ tusharkant15) będzie działało, ponieważ za scenami, które wykonujesz
/usr/bin/java
, a nie sam plik .jar. Przeniesienie pliku .jar do innego systemu plików, który nie jest NTFS, również będzie działać.źródło