回答:
最も簡単な方法は、おそらくJavaランタイム環境(JRE)をアップグレードまたは再インストールすることです。
またはこれ:
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
Windows VistaまたはWindows 7では、手動のファイル関連付けエディターが削除されました。
最も簡単な方法は、小さくても強力なフリーウェアツールであるJarfixを実行することです。それを実行するだけで、Javaアプリが戻ってきます...もう一度ダブルクリックできます。
.jarファイルを配布して、他の人のWindowsコンピューターで実行できるようにする必要がある場合は、コマンドプロンプトで次のような単純な.batファイルを作成できます。
java -jar MyJavaTool.jar
.batファイルを.jarファイルと同じディレクトリに配置します。
Example.jarというjarファイルがある場合は、次のルールに従います。
notepad.exe
java -jar Example.jar
.bat
.jar
ファイルがあるディレクトリにコピーします.jar
ファイルを実行しますこれの興味深い副作用は、コマンドプロンプトで実行可能な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に埋め込み、実行が終了したときにそれをクリーンアップすることもできるので、これはよりエレガントなソリューションになる可能性があります。
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ではテストされていません
ユーザーが自分の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
}
}
他のすべての提案に加えて、考慮する必要があるもう1つのことがあります。あなたのhelloworld.jarはコンソールプログラムですか?もしそうなら、私はそれをダブルクリック可能なjarファイルにすることができるとは信じていません。コンソールプログラムは、入力と出力に通常のcmd.exeシェルウィンドウを使用します。通常、jar "launcher"は、コマンドシェルウィンドウを作成しないjavaw.exeにバインドされています。
Windows 7 x64を実行していますが、これらの修正を使用できませんでした。
これは結局私のために働きました:
http://thepanz.netsons.org/post/windows7-jar-file-association-broken-with-nokia-ovi
実行する.batファイルを含むダウンロード可能なアーカイブがありますが、実際のjavaw.exeのパスを確認してください!!!!
いくつかのことを確認したいとします。これが独自のjarファイルである場合は、マニフェストでMainクラスを定義していることを確認してください。コマンドラインから実行できることはわかっているので、もう1つ行うことは、Windowsショートカットを作成し、プロパティを変更することです(見回す必要があります。Windowsマシンはありません)。オープン時に実行されるコマンドは、あなたが言及したjava -jarコマンドです。
もう1つは、混乱しないものであれば、とにかく機能するはずです。確認し、Javaが.jar拡張子に関連付けられていることを確認してください。
残念ながら、最近のWindowsエディションでは、Microsoftが高度なファイル関連付けダイアログを削除したため、それほど簡単ではありません。-新しいWindowsバージョンでは、.jarファイルを開くために使用するアプリケーションのみを指定できます。
Windowsでの.jarファイルのオープンを修正するには、2つのステップが必要です。
コントロールパネルを開き、[既定のプログラム]-> [関連付けの設定]を選択します。そこで.jar拡張子(実行可能JARファイル)を見つけ、この拡張子を開くデフォルトのプログラムとしてJavaを選択します。おそらく「Java Platform(SE)」と表示されます。より高速な代替策は、おそらく.jarファイルを直接右クリックし、[変更...]ボタンをクリックして関連するプログラムを変更することです。
次に、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
シェルウィンドウが開くため、ここでは使用しないでください。私はWindows 10でも同じ問題を抱えていました。「helloworld.jar」を右クリックして修正し、プロパティに移動して、「次で開く:」の下の変更ボタンをクリックし、「このPCで別のアプリを探す」を選択します。「でで... [開く ]ダイアログボックス」、お使いのPCやオープン対応JDKフォルダにあなたのJavaフォルダの場所に移動して開き、ビンフォルダを「選択javaw.exeのを、そこから」。次に、「helloworld.jar」が通常の方法で開きます。
通常のJavaの場所の例:「C:\ Program Files(x86)\ Java \ jdk1.8.0_111 \ bin」。
クリック/ダブルクリックでjarファイルを実行する別の方法は、ファイル名の先頭に「-jar」を付加することです。たとえば、ファイルの名前を変更するでしょうMyJar.jar
に-jar MyJar.jar
。
もちろん、に.class
関連付けられているファイルが必要java.exe
です。これはすべてのケースで機能するわけではありませんが、私にとってはほとんどの場合機能しました。
PreScript:プロンプトが表示されてすぐに消える場合、その理由は、プログラムが実行されて自動的にシャットダウンするためです。最後にスキャナーを配置して終了すると、終了する前にプロンプトが入力を待機し続けます。(または、おそらく遅延を使用してください)
cmdから.jarを実行しても問題なく動作するのと同じ状況でしたが、ダブルクリックしても何も起こりませんでした。
解決策:任意のテキストエディターを開き、コマンドラインを記述します。java -jar Example.jarファイルを.batファイルとして保存します。このbatファイルを実行して、必要な出力を取得します。
一歩進んで、Bat To Exe ConverterのようなシンプルなGUIツールを使用して、このbatファイルをexeファイルに変換できます。
これで、.jarファイルを.exeファイルの配布として共有できるようになりました。誰でも使用でき、すべてのファイルをまとめて保管してください。(特に、.jarファイルと.batファイルが原因で.batがcmdプロンプトにすぎない)(論理的な感じ)
私は開発と学習にかなり新しいです。犯された場合は間違いをお許しください。提案は大歓迎です。
.bat
ファイルを使用:
コマンドを.batファイルに入れます。ここでは、コマンドはになりますjava -jar path\yourJarName.jar
。
Something like: java -jar C:\workspace\myApplication.jar
それを保存し、batファイルをダブルクリックしてjarを実行します。ファイル名は次のようになりますfileName.bat
Javaファイルを作成するためにEclipseを使用する場合、それを実行可能なjarファイルとしてエクスポートすることを選択できます。私は自分のプログラムでこれを行い、jarをクリックするだけで、そのように実行されます。これは両方のウィンドウとos xで機能します。
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のヘルプページをご覧ください。 リンク
手順:
1.)GoogleでJava SEランタイム環境を検索:https : //www.google.com/search? q=Java+SE+Runtime+Environment
2.)適切なバージョンをコンピューターにインストールする
コンパイルする場合:
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
実際、私もこの問題に直面しました。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();
}
}
このコード(私のコード)はjarファイルでのみ機能し、クラスファイルでは機能しません。
jarファイルは、文字列 "jarName"がメインクラスと同じ名前でなければなりません