Uruchamianie pliku JAR w systemie Windows

228

Mam plik JAR o nazwie helloworld.jar . Aby go uruchomić, wykonuję następujące polecenie w oknie wiersza poleceń:

java -jar helloworld.jar

Działa to dobrze, ale jak mam to zrobić podwójnym kliknięciem? Czy muszę zainstalować jakieś oprogramowanie?

DonX
źródło
1
Wykonaj czynności opisane tutaj: Wykonywanie
słoika w systemie

Odpowiedzi:

123

Najłatwiejszą drogą jest prawdopodobnie aktualizacja lub ponowna instalacja środowiska Java Runtime Environment (JRE).

Albo to:

  • Otwórz Eksploratora Windows, w Narzędziach wybierz „Opcje folderów ...”
  • Kliknij kartę Typy plików, przewiń w dół i wybierz Typ pliku JAR.
  • Naciśnij przycisk Zaawansowane.
  • W oknie dialogowym Edytuj typ pliku wybierz Otwórz w polu Działania i kliknij Edytuj ...
  • Naciśnij przycisk Przeglądaj i przejdź do lokalizacji javaw.exe interpretera Java.
  • W aplikacji służącej do wykonywania akcji musi wyświetlać coś podobnego do C:\Program Files\Java\j2re1.4.2_04\bin\javaw.exe" -jar "%1" %(Uwaga: część zaczynająca się od „javaw” musi być dokładnie taka; druga część nazwy ścieżki może się różnić w zależności od używanej wersji Javy ), a następnie naciskaj przyciski OK, aż wszystkie okna dialogowe zostaną zamknięte.

Który został skradziony stąd: http://windowstipoftheday.blogspot.com/2005/10/setting-jar-file-association.html

Brian Kelly
źródło
13
myślę, że najłatwiejszym sposobem jest kliknięcie prawym przyciskiem myszy dowolnego pliku jar, otwarcie go i wybranie „środowiska wykonawczego programów Java”. :)
Kassem,
robiąc to, zawsze daje mi ten błąd „Binarna platforma Java SE przestała działać” ... Czy ktoś może pomóc, co może być problemem?
Faizan
1
@Faizan - Twój problem brzmi jak osobny problem. Widzę kilka wyników SO i Google dla „Binarna platforma Java SE przestała działać”. Sprawdziłbym je.
Brian Kelly,
26
nie ma zakładki Typy plików w opcjach folderów w win 7
Radu Simionescu,
79

W systemie Windows Vista lub Windows 7 usunięto ręczny edytor skojarzeń plików .

Najłatwiejszym sposobem jest uruchomienie Jarfix , małego, ale potężnego darmowego narzędzia. Po prostu uruchom go, a aplikacje Java wrócą ... ponownie kliknij dwukrotnie.

Hendy Irawan
źródło
Dzięki za wskazówkę, gdyby tylko był sposób na pozbycie się tych małych (nie) „użytecznych” nowych pudełek
LoG
55

Jeśli musisz rozpowszechnić plik .jar i umożliwić jego uruchamianie na komputerach innych osób z systemem Windows, możesz utworzyć prosty plik .bat w wierszu polecenia:

java -jar MyJavaTool.jar

i umieść plik .bat w tym samym katalogu, co plik .jar.

Demorf
źródło
Ale w jaki sposób wykonywany jest .bat? Czy byłaby to ta sama strategia, aby aplikacja Java otworzyła także sesję wiersza poleceń?
Ungeheuer,
1
Nie, po prostu otworzyłbyś plik nietoperza. Nie jestem pewien, czy rozumiem twoje pytanie.
26

Jeśli masz plik jar o nazwie Example.jar, postępuj zgodnie z następującymi regułami:

  1. Otwórz notepad.exe
  2. Pisać : java -jar Example.jar
  3. Zapisz to z rozszerzeniem .bat
  4. Skopiuj go do katalogu, w którym znajduje się .jarplik
  5. Kliknij dwukrotnie, aby uruchomić .jarplik
Pusu
źródło
4
1) To nie działałoby na Macu. lub Unix. 2) Tworzy niepotrzebny plik. 3) Lepsze odpowiedzi udzielono ponad 2 lata temu. 4) .. A tym słowem jest „ty”.
Andrew Thompson,
Świetny sposób na uruchomienie słoika w systemie Windows! Nie ukrywa również danych z wiersza poleceń, więc mogłem zobaczyć, dlaczego mój słoik nie działa tak, jak myślałem. Dziękuję Ci.
Joe
15

Ciekawy efekt uboczny tego powoduje problem przy uruchamianiu uruchamianych plików jar w wierszu polecenia.

Jeśli spróbujesz (w wierszu polecenia):

jarfile.jar parameter

Bez radości, ponieważ jest to tłumaczone na następujące (co nie działa):

javaw.exe -jar jarfile.jar parameter

Jednak następujące polecenie działa:

java.exe -jar jarfile.jar parameter

Jeśli zmienisz powiązanie w menedżerze plików, jak opisano powyżej, na:

"C:\Program Files\Java\j2re1.4.2_04\bin\java.exe" -jar "%1" %*

Następnie możesz wpisać:

jarfile.jar parameter

w wierszu polecenia, a teraz będzie działać!

EDYCJA: (Jednak wtedy wyświetla się czarne okno konsoli po uruchomieniu aplikacji Java opartej na formularzu (bez konsoli), więc nie jest to idealne rozwiązanie)

Jeśli uruchomisz te pliki jar przez dwukrotne kliknięcie ich w systemie Windows, nie zostaną przekazane żadne parametry, więc kod Java musi obsłużyć wyjątek przepełnienia stosu i zawierać funkcję „naciśnij klawisz” na końcu lub okno po prostu zniknie.

Aby przekazać parametr w systemie Windows, musisz utworzyć skrót do pliku jar, który zawiera parametr w linii docelowej (kliknij prawym przyciskiem myszy skrót i wybierz właściwości), nie możesz dodawać parametrów do samej ikony pliku jar w tym sposób.

Nie ma tutaj jednego spójnego rozwiązania, ale miałbyś ten sam problem z każdą inną aplikacją konsolową.

Istnieje bezpłatna aplikacja dla systemu Windows o nazwie „bat to exe”, której można użyć do utworzenia pliku exe z pliku .bat z odpowiednim wierszem poleceń. Za pomocą tej aplikacji możesz również osadzić plik jar w pliku exe i wyczyścić go po zakończeniu działania, co może być bardziej eleganckim rozwiązaniem.

Pion
źródło
11

Najpierw ustaw ścieżkę w cmd (wiersz polecenia):

set path="C:\Program Files\Java\jre6\bin"

następnie wpisz

java -jar yourProgramname.jar 
suraj
źródło
9

W Windows XP * potrzebujesz tylko 2 poleceń powłoki :

   C:\>ftype myjarfile="C:\JRE1.6\bin\javaw.exe" -jar "%1" %* 
   C:\>assoc .jar=myjarfile  

oczywiście używając poprawnej ścieżki do środowiska JRE i dowolnej nazwy zamiast myjarfile .

Aby tylko sprawdzić bieżące ustawienia:

   C:\>assoc .jar  
   C:\>ftype jarfile  

tym razem wykorzystując wartość zwróconą przez pierwsze polecenie, jeśli istnieje, zamiast jarfile.

* nie testowano w systemie Windows 7

użytkownik85421
źródło
1
Anonimowy użytkownik przetestował to w systemie Windows 7 (JRE 7). Mówią, że działa, jeśli uruchomisz cmd jako admin.
Jeremy Stein,
Najlepsze rozwiązanie w moich oczach. Działa w systemie Windows 10. Polecenia ftype i assoc powinny być uruchamiane w oknie wiersza polecenia z uprawnieniami administratora.
SixDoubleFiveTreeTwoOne
7

Jest sposób bez konieczności wprowadzania zmian na komputerze przez użytkownika. Runtime.getRuntime.exec () pozwala nam uruchomić cmd.exe i wykonywać w nim polecenia. Tak więc możliwe jest, że program Java uruchomi się w wierszu polecenia, gdy użytkownik kliknie plik .jar.

public static void main(String[] args) throws IOException {
    if(args.length == 0) {
        Process p = Runtime.getRuntime().exec("cmd.exe /c start java -jar " + (new File(NameOfClass.class.getProtectionDomain().getCodeSource().getLocation().getPath())).getAbsolutePath() + " cmd");
    } else {
        //code to be executed
    }
}
dario111cro
źródło
6

Oprócz wszystkich innych sugestii należy wziąć pod uwagę jeszcze jedną rzecz. Czy Twój helloworld.jar jest programem konsolowym? Jeśli tak, to nie sądzę, że będziesz w stanie przekształcić go w plik jar, który można kliknąć dwukrotnie. Programy konsolowe używają zwykłego okna powłoki cmd.exe dla swoich danych wejściowych i wyjściowych. Zwykle „program uruchamiający” jar jest powiązany z javaw.exe, który nie tworzy okna powłoki poleceń.


źródło
4

W regedit otwórz HKEY_CLASSES_ROOT\Applications\java.exe\shell\open\command

Kliknij dwukrotnie domyślnie po lewej stronie i dodaj -jar między java.exeścieżką a %1argumentem „ ”.

grwww
źródło
To było to. Dzięki. Wszystkie inne rzeczy nie pomogły.
raedma
3

Chcesz sprawdzić kilka rzeczy; jeśli jest to twój własny plik jar, upewnij się, że zdefiniowałeś klasę główną w manifeście. Ponieważ wiemy, że można go uruchomić z wiersza polecenia, drugą rzeczą jest utworzenie skrótu do systemu Windows i zmodyfikowanie właściwości (musisz się rozejrzeć, nie mam komputera z systemem Windows), aby polecenie, które wykonuje przy otwartym to wspomniane polecenie java -jar.

Inna sprawa: jeśli coś nie jest zdezorientowane, i tak powinno działać; sprawdź i upewnij się, że masz rozszerzenie Java dla rozszerzenia .jar.

Charlie Martin
źródło
1

Niestety nie jest to takie proste, ponieważ Microsoft usunął zaawansowane okno dialogowe skojarzenia plików w ostatnich edycjach systemu Windows. - W nowszych wersjach systemu Windows można określić tylko aplikację, która będzie używana do otwierania pliku .jar.

Naprawienie otwarcia pliku .jar w systemie Windows wymaga dwóch kroków.

  1. Otwórz Panel sterowania i wybierz „Programy domyślne -> Ustaw powiązania”. Znajdź tam rozszerzenie .jar ( plik wykonywalny JAR ) i wybierz Java jako domyślny program do otwierania tego rozszerzenia. Prawdopodobnie będzie wymieniony jako „ Java Platform (SE) ”. Być może szybszą alternatywą jest proste kliknięcie pliku .jar prawym przyciskiem myszy, a następnie zmiana powiązanego programu poprzez kliknięcie przycisku „Zmień ...”.

  2. Teraz otwórz regedit i otwórz HKEY_CLASSES_ROOT\jarfile\shell\open\commandklucz. Na szczęście dla nas możemy określić parametry (Default)wartości. W moim systemie Windows wygląda to tak: C:\app\32\jre7\bin\javaw.exe" -jar "%1" %*w większości przypadków jest to następujący ciąg:C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*

UWAGI:

  • Nie używaj java.exetam, ponieważ spowoduje to otwarcie okna powłoki.
  • Jarfix narzędzie wspomniane w tym wątku najprawdopodobniej nie robi nic więcej niż modyfikacji rejestru dla Ciebie. Wolę metodę ręcznej zmiany rejestru, ponieważ oznacza to, że administrator systemu może „wypchnąć” zmianę rejestru na wszystkie stacje robocze w sieci.
DejanLekic
źródło
1

Miałem ten sam problem w systemie Windows 10. Naprawiłem go, klikając prawym przyciskiem myszy plikhelloworld.jar ”, i przejdź do właściwości i kliknij przycisk Zmień w obszarze „Otwiera się za pomocą” i wybierz „ Wyszukaj inną aplikację na tym komputerze ”. W oknie dialogowym „ Otwórz za pomocą ... ” przejdź do lokalizacji folderu Java na komputerze i otwórz odpowiedni folder jdk, a następnie otwórz folder bin i wybierz „ javaw.exe ”. Następnie następnym razem twój „ helloworld.jar ” otworzy się normalnie.

Przykład lokalizacji java: „ C: \ Program Files (x86) \ Java \ jdk1.8.0_111 \ bin ”.

Samintha Kaveesh
źródło
1

Innym sposobem uruchamiania plików jar za pomocą kliknięcia / dwukrotnego kliknięcia jest dodanie „-jar” do nazwy pliku. Na przykład zmieniłbyś nazwę pliku MyJar.jarna-jar MyJar.jar .

Oczywiście musisz mieć .classpowiązane pliki java.exe. To może nie działać we wszystkich przypadkach, ale działało dla mnie większość razy.

użytkownik4343596
źródło
1

Nakaz : Jeśli monit pojawi się i zniknie natychmiast, przyczyną jest to, że program zostanie wykonany i automatycznie się zamknie. Spróbuj umieścić skaner na końcu, aby zakończyć, a będzie monitował o wprowadzenie danych przed zakończeniem. (Lub użyj opóźnienia)

Był w tej samej sytuacji, w której uruchomienie .jar z cmd działało dobrze, ale podwójne kliknięcie nic nie zrobiło.

Rozwiązanie: Otwórz dowolny edytor tekstu i wpisz wiersz polecenia: java -jar Przykład.jar Zapisz plik jako plik .bat. Uruchom ten plik nietoperza, aby uzyskać potrzebne dane wyjściowe.

Robiąc krok do przodu, możesz przekonwertować ten plik nietoperza na plik exe za pomocą prostego narzędzia GUI, takiego jak Bat To Exe Converter.

Teraz możesz udostępnić plik .jar jako plik dystrybucyjny w pliku .exe, z którego każdy może korzystać, po prostu upewnij się, że wszystkie pliki są razem. (Zwłaszcza pliki .jar i .bat powodują, że .bat jest tylko poleceniem cmd) (Jak to logiczne)

Jestem całkiem nowy w rozwoju i dużo się uczę. Przepraszam za ewentualne błędy, jeśli zostaną popełnione. Sugestie są mile widziane.

Manthan_Admane
źródło
1

użyj .batpliku:

Umieść swoje polecenie w pliku .bat. tutaj będzie twoje polecenie java -jar path\yourJarName.jar. Something like: java -jar C:\workspace\myApplication.jar

Zapisz go i kliknij dwukrotnie plik nietoperza, aby uruchomić słoik. Twoja nazwa pliku będzie podobna dofileName.bat

Bandham Manikanta
źródło
0

Jeśli używasz Eclipse do tworzenia plików Java, możesz wyeksportować go jako plik jar do uruchomienia. Zrobiłem to z moimi programami i mogę po prostu kliknąć słoik, a on będzie działał w ten sposób. Działa to zarówno w systemie Windows, jak i OS X.


źródło
Wydaje się, że nie gwarantuje się, że zadziała, zgodnie z tym pytaniem
doubleDown
0

Zaczynam. Nietoperz był jedyną rzeczą, która działała dla mnie.

otwórz dokument tekstowy i wprowadź. java -jar, jakkolwiek się nazywa .jar

zapisz jako start.bat w tym samym folderze co plik .jar, który chcesz uruchomić. a następnie uruchom. nietoperz

freeloaderzful
źródło
0

Jeśli chcesz uruchomić plik jar, klikając go dwukrotnie, musisz go utworzyć jako „ Runarable JAR ”. możesz to zrobić po prostu za pomocą swojego IDE.

Jeśli używasz Eclipse, wykonaj następujące kroki:

    To create a new runnable JAR file in the workbench:

1.From the menu bar's File menu, select Export.
2.Expand the Java node and select Runnable JAR file. Click Next.
3.In the  Opens the Runnable JAR export wizard Runnable JAR File Specification page, select a 'Java Application' launch configuration to use to create a runnable JAR.
4.In the Export destination field, either type or click Browse to select a location for the JAR file.
5.Select an appropriate library handling strategy.
Optionally, you can also create an ANT script to quickly regenerate a previously created runnable JAR file.

więcej informacji można znaleźć na stronie pomocy Eclipse: LINK

Nomesh DeSilva
źródło
0

Istnieje wiele metod uruchamiania pliku .jar w systemie Windows. Jeden z nich korzysta z wiersza polecenia.

Kroki :

  1. Otwórz wiersz polecenia (Uruchom jako administrator)
  2. Teraz napisz polecenie „cd \” dla katalogu głównego
  3. Wpisz „java jar filename.jar” Uwaga: możesz również używać dowolnych aplikacji innych firm, takich jak WinRAR, jarfix itp.
irisrei08
źródło
0

Utwórz .batplik:

start javaw -jar %*

I wybierz domyślną aplikację, aby otworzyć .jarz tym .batplikiem.

Zostanie zamknięty cmdpo uruchomieniu .jarpliku.

hong4rc
źródło
0

Do kompilacji:

javac  -cp ".;./mysql-connector-java-5.0.8.jar;mybatis-3.0.1.jar;ibatis-2.3.0.677.jar" MainStart.java

Do biegania:

java  -cp ".;./mysql-connector-java-5.0.8.jar;mybatis-3.0.1.jar;ibatis-2.3.0.677.jar" MainStart
Anil Kumar Meena
źródło
0

Właściwie napotkałem również ten problem, poradziłem sobie z tym, tworząc program uruchamiający .bat dla mojego pliku jar

tutaj jest kod:

class FileHandler{
   public static File create_CMD_Rnner(){
      int exitCode = -1625348952;
      try{
           File runner = new File(Main.batName);
           PrintWriter printer = new PrintWriter(runner);
           printer.println("@echo off");
           printer.println("title " + Main.applicationTitle);
           printer.println("java -jar " + Main.jarName + " " + Main.startCode );
           printer.println("PAUSE");
           printer.flush();
           printer.close();
           return runner;
       }catch(Exception e){
           System.err.println("Coudln't create a runner bat \n exit code: " + exitCode);
           System.exit(exitCode);
           return null;
       }
   }
}



Następnie w swojej głównej klasie aplikacji wykonaj następujące czynności:

public class Main{
    static String jarName = "application.jar";
    static String applicationTitle = "java Application";
    static String startCode = "javaIsTheBest";
    static String batName = "_.bat";


    public static void main(String args[]) throws Exception{
        if(args.length == 0 || !args[0].equals(startCode)) {
            Desktop.getDesktop().open(FilesHandler.create_CMD_Rnner());
            System.exit(0);
        }else{
            //just in case you wanted to hide the bat
            deleteRunner();
            // Congratulations now you are running in a cmd window ... do whatever you want
            //......
            System.out.println("i Am Running in CMD");
            //......
            Thread.sleep(84600);
        }
    }


    public static void deleteRunner(){
        File batRunner = new File(batName);
        if(batRunner.exists()) batRunner.delete();
    }
}


Proszę to zanotować

  1. ten kod (mój kod) działa tylko z plikiem jar, a nie plikiem klasy.

  2. plik jar musi mieć taką samą nazwę, jak ciąg „jarName” to klasa główna

ZOLDIK
źródło