Menjalankan file JAR di Windows

228

Saya memiliki file JAR bernama helloworld.jar . Untuk menjalankannya, saya menjalankan perintah berikut di jendela baris perintah:

java -jar helloworld.jar

Ini berfungsi dengan baik, tetapi bagaimana cara menjalankannya dengan klik dua kali? Apakah saya perlu menginstal perangkat lunak apa pun?

DonX
sumber
1
Ikuti langkah-langkah yang dijelaskan di sini: Menjalankan Jar pada Vista dengan klik dua kali
RealHowTo

Jawaban:

123

Rute termudah mungkin meningkatkan atau menginstal ulang Java Runtime Environment (JRE).

Atau ini:

  • Buka Windows Explorer, dari Tools pilih 'Folder Options ...'
  • Klik tab Jenis File, gulir ke bawah dan pilih Jenis File JAR.
  • Tekan tombol Lanjutan.
  • Di kotak dialog Edit Jenis File, pilih buka di kotak Tindakan dan klik Edit ...
  • Tekan tombol Browse dan arahkan ke lokasi Java interpreter javaw.exe.
  • Di bidang Aplikasi yang digunakan untuk melakukan tindakan, perlu menampilkan sesuatu yang mirip C:\Program Files\Java\j2re1.4.2_04\bin\javaw.exe" -jar "%1" %(Catatan: bagian yang dimulai dengan 'javaw' harus persis seperti itu; bagian lain dari nama jalur dapat bervariasi tergantung pada versi Java yang Anda gunakan ) kemudian tekan tombol OK sampai semua dialog ditutup.

Yang dicuri dari sini: http://windowstipoftheday.blogspot.com/2005/10/setting-jar-file-association.html

Brian Kelly
sumber
13
Saya pikir cara mudah adalah dengan mengklik kanan, file jar> buka dengan dan pilih "Java runtime environment". :)
Kassem
melakukannya, selalu memberikan kesalahan ini kepada saya "platform Java biner SE telah berhenti bekerja" ... Adakah yang bisa membantu, apa masalahnya?
Faizan
1
@Faizan - Masalah Anda terdengar seperti masalah yang terpisah. Saya melihat beberapa hasil SO dan Google untuk "Java platform SE binary telah berhenti bekerja". Saya akan memeriksanya.
Brian Kelly
26
tidak ada tab Jenis File di opsi Folder di win 7
Radu Simionescu
79

Di Windows Vista atau Windows 7, editor asosiasi file manual telah dihapus.

Cara termudah adalah dengan menjalankan Jarfix , alat freeware kecil tapi kuat. Jalankan saja dan aplikasi Java Anda kembali ... klik dua kali lagi.

Hendy Irawan
sumber
Terima kasih atas tipnya, andai saja ada cara untuk menyingkirkan kotak
LoG
55

Jika Anda perlu mendistribusikan file .jar Anda dan membuatnya dapat dijalankan di komputer Windows orang lain, Anda dapat membuat file .bat sederhana seperti ini di command prompt:

java -jar MyJavaTool.jar

dan letakkan file .bat di direktori yang sama dengan file .jar Anda.

Demorf
sumber
Tetapi bagaimana .bat dieksekusi? Apakah ini akan menjadi strategi yang sama untuk mendapatkan aplikasi Java untuk membuka sesi baris perintah juga?
Ungeheuer
1
Yah tidak, Anda hanya akan membuka file bat. Saya tidak yakin saya mengerti pertanyaan Anda.
26

Jika Anda memiliki file jar yang disebut Example.jar, ikuti aturan ini:

  1. Buka sebuah notepad.exe
  2. Menulis : java -jar Example.jar
  3. Simpan dengan ekstensi .bat
  4. Salin ke direktori yang memiliki .jarfile
  5. Klik dua kali untuk menjalankan .jarfile Anda
Pusu
sumber
4
1) Itu tidak akan berfungsi pada Mac. atau Unix. 2) Ini menciptakan file yang tidak perlu. 3) Jawaban yang lebih baik diberikan lebih dari 2 tahun yang lalu. 4) ..dan kata itu adalah 'kamu'.
Andrew Thompson
Cara hebat untuk menjalankan toples di Windows! Itu juga tidak menyembunyikan input baris perintah, jadi saya bisa melihat mengapa toples saya tidak berjalan seperti yang saya pikir seharusnya. Terima kasih.
Joe
15

Efek samping yang menarik dari ini menyebabkan masalah ketika memulai file jar yang bisa dijalankan di prompt perintah.

Jika Anda mencoba (dalam prompt perintah):

jarfile.jar parameter

Tidak ada sukacita, karena ini sedang diterjemahkan sebagai berikut (yang tidak berfungsi):

javaw.exe -jar jarfile.jar parameter

Namun, perintah berikut ini berfungsi:

java.exe -jar jarfile.jar parameter

Jika Anda mengubah asosiasi di pengelola file seperti yang dijelaskan di atas menjadi:

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

Maka Anda dapat mengetik:

jarfile.jar parameter

di command prompt dan sekarang akan berfungsi!

EDIT: (Namun Anda kemudian mendapatkan jendela konsol hitam ketika Anda menjalankan aplikasi Java berbasis form (bukan konsol), jadi ini bukan solusi yang ideal)

Jika Anda menjalankan file jar ini dengan mengklik dua kali di windows, tidak ada parameter yang akan dilewati sehingga kode Java Anda perlu menangani pengecualian stack overflow dan menyertakan fungsi "tekan tombol" di bagian akhir atau jendela hanya akan hilang.

Untuk melewatkan parameter di windows Anda harus membuat pintasan ke file jar, yang mencakup parameter di baris target (klik kanan pada pintasan dan pilih properti) Anda tidak bisa menambahkan parameter ke ikon file jar itu sendiri di ini cara.

Tidak ada solusi tunggal yang konsisten di sini, tetapi Anda akan memiliki masalah yang sama dengan aplikasi konsol lainnya.

Ada aplikasi freeware windows yang disebut "bat to exe" yang dapat Anda gunakan untuk membuat file exe dari file .bat dengan baris perintah yang sesuai di dalamnya. Anda juga dapat menyematkan file jar di exe dengan aplikasi ini, dan membuatnya bersih setelah selesai dijalankan, jadi ini mungkin solusi yang lebih elegan.

Bob
sumber
11

Setel path pertama pada cmd (command prompt):

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

lalu ketik

java -jar yourProgramname.jar 
suraj
sumber
9

Di Windows XP * Anda hanya perlu 2 perintah shell :

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

jelas menggunakan jalur yang benar untuk JRE dan nama apa pun yang Anda inginkan myjarfile.

Untuk hanya memeriksa pengaturan saat ini:

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

kali ini menggunakan nilai yang dikembalikan oleh perintah pertama, jika ada, bukan jarfile.

* tidak diuji dengan Windows 7

pengguna85421
sumber
1
Pengguna anonim mengujinya dengan Windows 7 (JRE 7). Mereka mengatakan itu berfungsi jika Anda menjalankan cmd sebagai admin.
Jeremy Stein
Solusi terbaik di mata saya. Bekerja hingga Windows 10. Perintah ftype dan assoc harus dijalankan di jendela command prompt dengan hak admin.
SixDoubleFiveTreeTwoOne
7

Ada cara tanpa mengharuskan pengguna untuk melakukan perubahan pada PC-nya. Runtime.getRuntime.exec () memungkinkan kita untuk memulai cmd.exe dan menjalankan perintah di dalamnya. Jadi, itu mungkin bagi program java untuk menjalankan dirinya di command prompt ketika pengguna mengklik file .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
sumber
6

Selain semua saran lainnya, ada satu hal lagi yang perlu Anda pertimbangkan. Apakah helloworld.jar Anda adalah program konsol? Jika ya, maka saya tidak yakin Anda bisa membuatnya menjadi file jar yang bisa diklik ganda. Program konsol menggunakan jendela shell cmd.exe biasa untuk input dan outputnya. Biasanya toples "peluncur" terikat ke javaw.exe yang tidak membuat jendela command-shell.


sumber
4

Di regedit, buka HKEY_CLASSES_ROOT\Applications\java.exe\shell\open\command

Klik dua kali pada default di sebelah kiri dan tambahkan -jar di antara java.exepath dan %1argumen " ".

grwww
sumber
Ini dia. Terima kasih. Semua hal lain tidak membantu.
raedma
3

Anda ingin memeriksa beberapa hal; jika ini adalah file jar Anda sendiri, pastikan Anda telah mendefinisikan kelas Utama di manifes. Karena kami tahu Anda dapat menjalankannya dari baris perintah, hal lain yang harus dilakukan adalah membuat pintasan windows, dan memodifikasi properti (Anda harus melihat-lihat, saya tidak punya mesin Windows untuk melihatnya) sehingga perintah yang dijalankannya terbuka adalah perintah java -jar yang Anda sebutkan.

Hal lain: jika ada sesuatu yang tidak membingungkan, itu tetap akan berhasil; periksa dan pastikan Anda memiliki java yang terkait dengan ekstensi .jar.

Charlie Martin
sumber
1

Sayangnya, tidak semudah Microsoft menghapus dialog asosiasi file tingkat lanjut di edisi Windows terbaru. - Dengan versi Windows yang lebih baru Anda hanya dapat menentukan aplikasi yang akan digunakan untuk membuka file .jar.

Memperbaiki pembukaan file .jar pada Windows membutuhkan dua langkah.

  1. Buka Control Panel, dan pilih "Program Default -> Set Associations". Temukan ekstensi .jar ( File JAR yang dapat dijalankan ) di sana, dan pilih Java sebagai program default untuk membuka ekstensi ini. Ini mungkin akan terdaftar sebagai " Platform Java (SE) ". Alternatif yang lebih cepat mungkin adalah klik kanan langsung pada file .jar, dan kemudian ubah program terkait dengan mengklik tombol "Ubah ...".

  2. Sekarang buka regedit, dan buka HKEY_CLASSES_ROOT\jarfile\shell\open\commandkuncinya. Beruntung bagi kami, kami dapat menentukan parameter di sana untuk (Default)nilai. Pada sistem Windows saya sepertinya: C:\app\32\jre7\bin\javaw.exe" -jar "%1" %*tetapi dalam kebanyakan kasus ini adalah string berikut:C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*

CATATAN:

  • Jangan gunakan di java.exesana karena akan membuka jendela shell.
  • Alat jarfix yang disebutkan di utas ini kemungkinan besar tidak lebih dari modifikasi registri untuk Anda. Saya lebih suka metode perubahan registri manual, karena itu menyiratkan bahwa administrator sistem dapat "mendorong" perubahan registri ke semua workstation di jaringan.
DejanLekic
sumber
1

Saya memiliki masalah yang sama di Windows 10. Saya memperbaikinya menggunakan klik kanan pada " helloworld.jar " dan pergi ke properti dan klik pada tombol ubah di bawah "Buka dengan:" dan pilih " Cari aplikasi lain di PC ini ". Di kotak dialog " Buka dengan ... ", buka lokasi folder Java di PC Anda dan buka folder jdk yang sesuai lalu buka folder bin dan pilih " javaw.exe " dari sana. Maka lain kali " helloworld.jar " Anda akan terbuka seperti biasa.

Contoh lokasi java biasa: " C: \ Program Files (x86) \ Java \ jdk1.8.0_111 \ bin ".

Samintha Kaveesh
sumber
1

Cara lain untuk menjalankan file jar dengan klik / klik dua kali, adalah dengan menambahkan "-jar" ke nama file. Misalnya, Anda akan mengganti nama file MyJar.jarmenjadi -jar MyJar.jar.

Anda harus memiliki .classfile yang terkait dengannya java.exe, tentu saja. Ini mungkin tidak berfungsi dalam semua kasus, tetapi itu paling berhasil bagi saya.

pengguna4343596
sumber
1

PreScript : Jika prompt Anda muncul dan segera menghilang, alasannya adalah karena program Anda dijalankan dan ditutup secara otomatis. Coba letakkan pemindai di ujung untuk mengakhiri dan itu akan membuat Anda menunggu masukan sebelum berhenti. (Atau gunakan penundaan mungkin)

Apakah dalam situasi yang sama, di mana menjalankan .jar dari cmd berfungsi dengan baik, tetapi mengklik ganda tidak berhasil.

Solusi: Buka editor teks apa pun dan tulis baris perintah: java -jar Example.jar Simpan file sebagai file .bat. Jalankan file bat ini untuk mendapatkan output yang dibutuhkan.

Mengambil satu langkah maju, Anda dapat mengonversi file bat ini menjadi file exe menggunakan alat GUI sederhana seperti Bat To Exe Converter.

Sekarang Anda dapat membagikan .jar Anda sebagai distribusi dalam file .exe yang dapat digunakan siapa saja, pastikan Anda menyimpan semua file. (Terutama file .jar dan .bat menyebabkan .bat hanya prompt cmd) (Bagaimana rasanya logis)

Saya cukup baru dalam pengembangan dan banyak belajar. Maaf jika ada kesalahan jika dilakukan. Saran diterima.

Manthan_Admane
sumber
1

gunakan .batfile:

Masukkan perintah Anda dalam file .bat. di sini, perintahmu akan java -jar path\yourJarName.jar. Something like: java -jar C:\workspace\myApplication.jar

Simpan dan klik dua kali pada file bat untuk menjalankan toples Anda. Nama file Anda akan seperti inifileName.bat

Bandham Manikanta
sumber
0

Jika Anda menggunakan eclipse untuk membuat file java, Anda dapat memilih untuk mengekspornya sebagai file jar yang dapat dijalankan. Saya melakukan ini dengan program-program saya dan saya cukup mengklik jar dan itu akan berjalan begitu saja. Ini akan bekerja pada kedua windows, serta os x.


sumber
Sepertinya tidak dijamin untuk bekerja, menurut pertanyaan
doubleDown
0

Membuat permulaan. Kelelawar adalah satu-satunya hal yang berhasil untuk saya.

buka dokumen teks dan masukkan. java -jar apa pun milikmu disebut .jar

simpan sebagai start.bat di folder yang sama dengan file .jar yang ingin Anda jalankan. dan kemudian jalankan. kelelawar

freeloaderzful
sumber
0

Jika Anda perlu menjalankan file jar dengan mengklik dua kali, Anda harus membuatnya sebagai " Runnable JAR ". Anda dapat melakukannya hanya dengan IDE Anda.

Jika Anda menggunakan gerhana, ikuti langkah-langkah ini:

    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.

informasi lebih lanjut dapat ditemukan di halaman bantuan Eclipse: LINK

Nomesh DeSilva
sumber
0

Ada banyak metode untuk menjalankan file .jar di windows. Salah satunya menggunakan command prompt.

Langkah :

  1. Buka command prompt (Jalankan sebagai administrator)
  2. Sekarang tulis perintah "cd \" untuk direktori root
  3. Ketik "java jar filename.jar" Catatan: Anda juga dapat menggunakan aplikasi pihak ketiga seperti WinRAR, perbaikan jar, dll.
irisrei08
sumber
0

Buat .batfile:

start javaw -jar %*

Dan pilih aplikasi default untuk dibuka .jardengan .batfile ini .

Ini akan menutup cmdsaat memulai .jarfile Anda .

hong4rc
sumber
0

Untuk kompilasi:

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

Untuk menjalankan:

java  -cp ".;./mysql-connector-java-5.0.8.jar;mybatis-3.0.1.jar;ibatis-2.3.0.677.jar" MainStart
anil kumar meena
sumber
0

Sebenarnya, saya menghadapi masalah ini juga, saya menyiasatinya dengan membuat pelari .bat untuk file jar saya di

sini adalah kode:

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;
       }
   }
}



Kemudian di kelas aplikasi Utama Anda lakukan ini:

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();
    }
}


Harap dicatat bahwa

  1. kode ini (kode saya) hanya berfungsi dengan file jar, bukan file kelas.

  2. file jar harus memiliki nama yang sama dengan String "jarName" adalah kelas Utama

ZOLDIK
sumber