WindowsでのJARファイルの実行


228

helloworld.jarという名前のJARファイルがあります。それを実行するために、コマンドラインウィンドウで次のコマンドを実行しています。

java -jar helloworld.jar

これは正常に動作しますが、代わりにダブルクリックで実行するにはどうすればよいですか?ソフトウェアをインストールする必要がありますか?


1
ここで説明されている手順に従ってください:Vistaでの
JARの

回答:


123

最も簡単な方法は、おそらくJavaランタイム環境(JRE)をアップグレードまたは再インストールすることです。

またはこれ:

  • Windowsエクスプローラを開き、[ツール]から[フォルダオプション...]を選択します。
  • [ファイルタイプ]タブをクリックし、下にスクロールして、[JARファイルタイプ]を選択します。
  • Advancedボタンを押します。
  • [ファイルタイプの編集]ダイアログボックスで、[アクションで開く]ボックスを選択し、[編集...]をクリックします。
  • [参照]ボタンを押して、Javaインタープリターjavaw.exeの場所に移動します。
  • 「アクションの実行に使用するアプリケーション」フィールドで、次のようなものを表示する必要がありますC:\Program Files\Java\j2re1.4.2_04\bin\javaw.exe" -jar "%1" %(注:「javaw」で始まる部分は正確に同じである必要があります。パス名の他の部分は、使用しているJavaのバージョンによって異なる場合があります。 )次に、すべてのダイアログが閉じるまで[OK]ボタンを押します。

ここから盗まれたもの:http : //windowstipoftheday.blogspot.com/2005/10/setting-jar-file-association.html


13
簡単な方法は、任意のjarファイルを右クリックし、「Javaランタイム環境」を選択して開くことだと思います。:)
Kassem

そうすることで、常にこのエラーが表示されます。「JavaプラットフォームSEバイナリが機能しなくなった」...誰かが助けてくれますか、問題は何ですか?
ファイザン2013年

1
@Faizan-あなたの問題は別の問題のように聞こえます。「JavaプラットフォームSEバイナリが機能しなくなった」というSOとGoogleの結果がいくつか表示されます。調べてみます。
ブライアンケリー

26
勝利7のフォルダオプションにファイルタイプタブはありません
Radu Simionescu

79

Windows VistaまたはWindows 7では、手動のファイル関連付けエディターが削除されました。

最も簡単な方法は、小さくても強力なフリーウェアツールであるJarfixを実行することです。それを実行するだけで、Javaアプリが戻ってきます...もう一度ダブルクリックできます。


ヒントをありがとう、これらの小さな(使用できない)新しいボックスを取り除く方法があったとしても
LoG

55

.jarファイルを配布して、他の人のWindowsコンピューターで実行できるようにする必要がある場合は、コマンドプロンプトで次のような単純な.batファイルを作成できます。

java -jar MyJavaTool.jar

.batファイルを.jarファイルと同じディレクトリに配置します。


しかし、.batはどのように実行されますか?これは、Javaアプリケーションにもコマンドラインセッションを開くための同じ戦略でしょうか?
Ungeheuer 2017

1
いやいや、あなたは単にバットファイルを開くでしょう。私はあなたの質問を理解しているのかわかりません。

26

Example.jarというjarファイルがある場合は、次のルールに従います。

  1. を開く notepad.exe
  2. 書く : java -jar Example.jar
  3. 拡張子を付けて保存します .bat
  4. .jarファイルがあるディレクトリにコピーします
  5. ダブルクリックして.jarファイルを実行します

4
1)Macでは機能しません。またはUnix。2)不要なファイルを作成します。3)より良い回答が2年以上前に提供された。4)..そして、その言葉は「あなた」です。
Andrew Thompson、

Windowsでjarを実行するのに最適な方法です。また、コマンドライン入力を非表示にしないので、jarが思ったように実行されていない理由を確認できました。ありがとうございました。
ジョー

15

これの興味深い副作用は、コマンドプロンプトで実行可能なjarファイルを開始するときに問題を引き起こします。

(コマンドプロンプトで)実行すると、次のようになります。

jarfile.jar parameter

これは次のように翻訳されているため、喜びはありません(これは機能しません)。

javaw.exe -jar jarfile.jar parameter

ただし、次のコマンドは機能します。

java.exe -jar jarfile.jar parameter

上記のようにファイルマネージャで関連付けを次のように変更した場合:

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

次に、次のように入力できます。

jarfile.jar parameter

コマンドプロンプトで、それが動作します!

編集:(ただし、フォームベースの(コンソールではない)Javaアプリを実行すると黒いコンソールウィンドウが表示されるため、これは理想的なソリューションではありません)

これらのjarファイルをウィンドウでダブルクリックして実行する場合、パラメーターは渡されないため、Javaコードはスタックオーバーフロー例外を処理し、最後に「キーを押す」関数を含める必要があります。そうしないと、ウィンドウが消えます。

ウィンドウでパラメーターを渡すには、ターゲット行にパラメーターを含むjarファイルへのショートカットを作成する必要があります(ショートカットを右クリックしてプロパティを選択)。このファイルでは、jarファイルアイコン自体にパラメーターを追加できません。仕方。

ここには単一の一貫した解決策はありませんが、他のコンソールアプリケーションでも同じ問題が発生します。

「bat to exe」と呼ばれるWindowsフリーウェアアプリケーションがあり、適切なコマンドラインを使用して.batファイルからexeファイルを作成できます。また、このアプリケーションを使用してjarファイルをexeに埋め込み、実行が終了したときにそれをクリーンアップすることもできるので、これはよりエレガントなソリューションになる可能性があります。


11

最初にcmd(コマンドプロンプト)にパスを設定します。

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

次に入力

java -jar yourProgramname.jar 

9

Windows XPでは*あなたはわずか2つの必要なシェルコマンドを:

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

明らかにJREの正しいパスと任意の名前を使用しますmyjarfile

現在の設定を確認するには:

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

今回は、の代わりに、最初のコマンドによって返された値があれば、それを使用しjarfileます。

* Windows 7ではテストされていません


1
匿名ユーザーがWindows 7(JRE 7)でこれをテストしました。管理者としてcmdを実行すれば機能するそうです。
ジェレミースタイン

私の目に最適なソリューション。Windows 10まで機能します。コマンドftypeおよびassocは、管理者権限を持つコマンドプロンプトウィンドウで実行する必要があります。
SixDoubleFiveTreeTwoOne 2017年

7

ユーザーが自分のPCで変更を行う必要がない方法があります。Runtime.getRuntime.exec()を使用すると、cmd.exeを起動して、その内部でコマンドを実行できます。したがって、ユーザーが.jarファイルをクリックすると、javaプログラムがコマンドプロンプトでそれ自体を実行する可能性があります。

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

6

他のすべての提案に加えて、考慮する必要があるもう1つのことがあります。あなたのhelloworld.jarはコンソールプログラムですか?もしそうなら、私はそれをダブルクリック可能なjarファイルにすることができるとは信じていません。コンソールプログラムは、入力と出力に通常のcmd.exeシェルウィンドウを使用します。通常、jar "launcher"は、コマンドシェルウィンドウを作成しないjavaw.exeにバインドされています。



4

regeditで開く HKEY_CLASSES_ROOT\Applications\java.exe\shell\open\command

左側のdefaultをダブルクリックし、java.exeパスと " %1"引数の間に-jarを追加します。


これでおしまい。ありがとう。他のすべてのものは助けにはならなかった。
raedma

3

いくつかのことを確認したいとします。これが独自のjarファイルである場合は、マニフェストでMainクラスを定義していることを確認してください。コマンドラインから実行できることはわかっているので、もう1つ行うことは、Windowsショートカットを作成し、プロパティを変更することです(見回す必要があります。Windowsマシンはありません)。オープン時に実行されるコマンドは、あなたが言及したjava -jarコマンドです。

もう1つは、混乱しないものであれば、とにかく機能するはずです。確認し、Javaが.jar拡張子に関連付けられていることを確認してください。


1

残念ながら、最近のWindowsエディションでは、Microsoftが高度なファイル関連付けダイアログを削除したため、それほど簡単ではありません。-新しいWindowsバージョンでは、.jarファイルを開くために使用するアプリケーションのみを指定できます。

Windowsでの.jarファイルのオープンを修正するには、2つのステップが必要です。

  1. コントロールパネルを開き、[既定のプログラム]-> [関連付けの設定]を選択します。そこで.jar拡張子(実行可能JARファイル)を見つけ、この拡張子を開くデフォルトのプログラムとしてJavaを選択します。おそらく「Java Platform(SE)」と表示されます。より高速な代替策は、おそらく.jarファイルを直接右クリックし、[変更...]ボタンをクリックして関連するプログラムを変更することです。

  2. 次に、regeditを開き、HKEY_CLASSES_ROOT\jarfile\shell\open\commandキーを開きます。幸運なことに、(Default)値のパラメータを指定できます。私のWindowsシステムでは次のように見えますC:\app\32\jre7\bin\javaw.exe" -jar "%1" %*が、ほとんどの場合は次の文字列です。C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*

ノート:

  • java.exeシェルウィンドウが開くため、ここでは使用しないでください。
  • jarfixのこのスレッドで言及したツールは、最も可能性の高いより多くのあなたのためのレジストリの変更よりも何もしません。システム管理者がレジストリの変更をネットワーク内のすべてのワークステーションに「プッシュ」できることを意味するので、私は手動のレジストリ変更方法を好みます。

1

私はWindows 10でも同じ問題を抱えていました。「helloworld.jar」を右クリックして修正し、プロパティに移動して、「次で開く:」の下の変更ボタンをクリックし、「このPCで別のアプリを探す」を選択します。「でで... [開く ]ダイアログボックス」、お使いのPCやオープン対応JDKフォルダにあなたのJavaフォルダの場所に移動して開き、ビンフォルダを「選択javaw.exeのを、そこから」。次に、「helloworld.jar」が通常の方法で開きます。

通常のJavaの場所の例:「C:\ Program Files(x86)\ Java \ jdk1.8.0_111 \ bin」。


1

クリック/ダブルクリックでjarファイルを実行する別の方法は、ファイル名の先頭に「-jar」を付加することです。たとえば、ファイルの名前を変更するでしょうMyJar.jar-jar MyJar.jar

もちろん、に.class関連付けられているファイルが必要java.exeです。これはすべてのケースで機能するわけではありませんが、私にとってはほとんどの場合機能しました。


1

PreScript:プロンプトが表示されてすぐに消える場合、その理由は、プログラムが実行されて自動的にシャットダウンするためです。最後にスキャナーを配置して終了すると、終了する前にプロンプ​​トが入力を待機し続けます。(または、おそらく遅延を使用してください)

cmdから.jarを実行しても問題なく動作するのと同じ状況でしたが、ダブルクリックしても何も起こりませんでした。

解決策:任意のテキストエディターを開き、コマンドラインを記述します。java -jar Example.jarファイルを.batファイルとして保存します。このbatファイルを実行して、必要な出力を取得します。

一歩進んで、Bat To Exe ConverterのようなシンプルなGUIツールを使用して、このbatファイルをexeファイルに変換できます。

これで、.jarファイルを.exeファイルの配布として共有できるようになりました。誰でも使用でき、すべてのファイルをまとめて保管してください。(特に、.jarファイルと.batファイルが原因で.batがcmdプロンプトにすぎない)(論理的な感じ)

私は開発と学習にかなり新しいです。犯された場合は間違いをお許しください。提案は大歓迎です。


1

.batファイルを使用:

コマンドを.batファイルに入れます。ここでは、コマンドはになりますjava -jar path\yourJarName.jarSomething like: java -jar C:\workspace\myApplication.jar

それを保存し、batファイルをダブルクリックしてjarを実行します。ファイル名は次のようになりますfileName.bat


0

Javaファイルを作成するためにEclipseを使用する場合、それを実行可能なjarファイルとしてエクスポートすることを選択できます。私は自分のプログラムでこれを行い、jarをクリックするだけで、そのように実行されます。これは両方のウィンドウとos xで機能します。


ただし、この質問
doubleDown

0

start.batを作成するだけでうまくいきました。

文書ドキュメントを開いて入力します。java -jar .jar と呼ばれるものは何でも

実行する.jarファイルと同じフォルダーにstart.batとして保存します。そして実行します。コウモリ


0

jarファイルをダブルクリックして実行する必要がある場合は、「Runnable JAR」として作成する必要があります。IDEで簡単に実行できます。

日食を使用している場合は、次の手順に従います。

    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.

詳細については、Eclipseのヘルプページをご覧ください。 リンク


0

多くの方法がありますWindowsで.jarファイルを実行にます。それらの1つは、コマンドプロンプトを使用しています。

手順:

  1. コマンドプロンプトを開く(管理者として実行)
  2. ルートディレクトリに「cd \」コマンドを記述します
  3. 「java jar filename.jar」と入力します。注:WinRAR、jarfixなどのサードパーティアプリを使用することもできます。


0

.batファイルを作成:

start javaw -jar %*

そして.jar、この.batファイルで開くアプリのデフォルトを選択します。

ファイルをcmd開始すると閉じ.jarます。


0

コンパイルする場合:

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

実行する場合:

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

0

実際、私もこの問題に直面しました。jarファイルの.batランナーを作成することで問題を回避しまし

た。コードは次のとおりです。

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



次に、メインアプリケーションクラスで次のようにします。

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


その点に注意してください

  1. このコード(私のコード)はjarファイルでのみ機能し、クラスファイルでは機能しません。

  2. jarファイルは、文字列 "jarName"がメインクラスと同じ名前でなければなりません

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.