最终生成的jar包里确实有MANIFEST.MF文件,Main-Class: 写的也没问题
现象:
在windows控制台用java -jar xxx.jar 可以运行
但是双击没有反应
我右键jar包,看到关联的程序确实是javaw程序
在网上看大伙的方法,试了都不行
那我就不明白了。
18 个解决方案
#1
你用cmd将你的文件打包成jar文件试一试
#2
右键切换打开方式,使用Java(TM) PlatForm SE binary 打开,希望能够帮助到你
#3
确实是这样设置的
#4
试过好多次了。不行
#5
在CMD里运行:
java jar包名字
看报错
java jar包名字
看报错
#6
http://jingyan.baidu.com/article/200957617c3619cb0621b44d.html
看看这篇文章
#7
.jar文件默认关联的是javaw,如果你打开的是控制台程序,那是因为控制台程序是不能用javaw打开的,javaw只能打开具有图形界面的Java程序。
如果你想双击打开,可以新建一个记事本文件,并将扩展名改为bat,然后右键-编辑,输入命令 java -jar xxx.jar 保存,双击这个bat文件即可运行xxx.jar。
如果你想双击打开,可以新建一个记事本文件,并将扩展名改为bat,然后右键-编辑,输入命令 java -jar xxx.jar 保存,双击这个bat文件即可运行xxx.jar。
#8
你试一试:
用命令行编译java并生成可执行的jar包
如果想用java编写一个可视化小程序,碰巧手头没有IDE的话,可以用命令行来完成编译、打包等工作。
拿自己编写的“java记事本”为例,介绍一下这个过程:
1.编写源代码。
编写源文件:NotePad.java并保存,例如:E:\myApp\NotePad.java。程序结构如下:
package test;
import java.awt.*;
import javax.swing.*;
//更多包的导入...
class NotePadFrame extends JFrame {
//主界面的设计...
}
//其他相关代码...
public class NotePad {
public static void main(String[] args) {
new NotePadFrame();
}
}
2.打开终端。
打开系统菜单:“开始”->“运行...”->输入“cmd”,打开终端。
执行如下命令转到源文件所在目录:
e:
cd myApp
3.编译源文件。
输入如下命令进行编译:
javac NotePad.java
执行成功之后,会在当前目录下生成一系列.class文件。
4.新建包文件夹。
输入如下命令新建包文件夹:
mkdir test
也可在资源管理器新建此文件夹。
此文件夹必须与源文件中定义的包名完全一致(package test;)。
5.将类文件放到新的文件夹里。
在资源管理器里将编译生成的所有.class文件移动到新建的test文件夹。
6.测试程序是否可正常运行。
在E:\myApp路径下输入如下命令:
java test.NotePad
如果可以正常运行程序,就可以进行下一步了。否则应检查上述步骤的正确性。
7.生成可执行的jar包。
在E:\myApp路径下输入如下命令:
jar -cef test.NotePad NotePad.jar test
以上命令及参数的含义如下:
jar命令为java自带的专用打包工具;
c代表生成新的jar包;
e代表可执行的类,亦即main方法所在的类。书写时要加上包名,在本例中是后面的test.NotePad;
f代表生成的jar包的名称,在本例中是NotePad.jar。此包名可以随意命名,没有规定;
test最后面的这个参数表示将test目录下的所有文件都打包放到新的jar包中。
8.测试jar包是否可正常运行。
在E:\myApp路径下输入如下命令:
java -jar NotePad.jar
如果可以正常运行程序,则说明jar包制作成功。
如果已经将“Java(TM) Platform SE binary”关联到.jar文件类型(通过正常安装jdk后都会正确关联),还可以通过双击来执行此类jar包,其感受与exe文件相同。
用命令行编译java并生成可执行的jar包
如果想用java编写一个可视化小程序,碰巧手头没有IDE的话,可以用命令行来完成编译、打包等工作。
拿自己编写的“java记事本”为例,介绍一下这个过程:
1.编写源代码。
编写源文件:NotePad.java并保存,例如:E:\myApp\NotePad.java。程序结构如下:
package test;
import java.awt.*;
import javax.swing.*;
//更多包的导入...
class NotePadFrame extends JFrame {
//主界面的设计...
}
//其他相关代码...
public class NotePad {
public static void main(String[] args) {
new NotePadFrame();
}
}
2.打开终端。
打开系统菜单:“开始”->“运行...”->输入“cmd”,打开终端。
执行如下命令转到源文件所在目录:
e:
cd myApp
3.编译源文件。
输入如下命令进行编译:
javac NotePad.java
执行成功之后,会在当前目录下生成一系列.class文件。
4.新建包文件夹。
输入如下命令新建包文件夹:
mkdir test
也可在资源管理器新建此文件夹。
此文件夹必须与源文件中定义的包名完全一致(package test;)。
5.将类文件放到新的文件夹里。
在资源管理器里将编译生成的所有.class文件移动到新建的test文件夹。
6.测试程序是否可正常运行。
在E:\myApp路径下输入如下命令:
java test.NotePad
如果可以正常运行程序,就可以进行下一步了。否则应检查上述步骤的正确性。
7.生成可执行的jar包。
在E:\myApp路径下输入如下命令:
jar -cef test.NotePad NotePad.jar test
以上命令及参数的含义如下:
jar命令为java自带的专用打包工具;
c代表生成新的jar包;
e代表可执行的类,亦即main方法所在的类。书写时要加上包名,在本例中是后面的test.NotePad;
f代表生成的jar包的名称,在本例中是NotePad.jar。此包名可以随意命名,没有规定;
test最后面的这个参数表示将test目录下的所有文件都打包放到新的jar包中。
8.测试jar包是否可正常运行。
在E:\myApp路径下输入如下命令:
java -jar NotePad.jar
如果可以正常运行程序,则说明jar包制作成功。
如果已经将“Java(TM) Platform SE binary”关联到.jar文件类型(通过正常安装jdk后都会正确关联),还可以通过双击来执行此类jar包,其感受与exe文件相同。
#9
>ftype jarfile
jarfile="C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*
>assoc .jar
.jar=jarfile
jarfile="C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*
>assoc .jar
.jar=jarfile
#10
>ftype jarfile
jarfile="C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*
>assoc .jar
.jar=jarfile
看不懂,啥意思呀?
#11
.jar文件默认关联的是javaw,如果你打开的是控制台程序,那是因为控制台程序是不能用javaw打开的,javaw只能打开具有图形界面的Java程序。
如果你想双击打开,可以新建一个记事本文件,并将扩展名改为bat,然后右键-编辑,输入命令 java -jar xxx.jar 保存,双击这个bat文件即可运行xxx.jar。
如果想双击运行jar文件,不想通过bat文件运行,有办法吗?
#12
设定运行方式的时候,可以设置加参数 -jar
#13
设定运行方式的时候,可以设置加参数 -jar
我去注册表里看了,javaw的command里,确确实实是加上了-jar "%1"
完整的 "C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*
#14
把注册表项中你编辑那个值中的"W"去掉,其他不变,就行
#15
Sorry,刚才没看清楚你的注册表路径,应该是改
HKEY_CLASSES_ROOT\jarfile\shell\open\command
中的默认项,把路径中的javaw改成java即可,其他部分不变
例如:"C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*
改为:"C:\Program Files\Java\jre7\bin\java.exe" -jar "%1" %*
HKEY_CLASSES_ROOT\jarfile\shell\open\command
中的默认项,把路径中的javaw改成java即可,其他部分不变
例如:"C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*
改为:"C:\Program Files\Java\jre7\bin\java.exe" -jar "%1" %*
#16
修改注册表或者重装jdk
#17
Sorry,刚才没看清楚你的注册表路径,应该是改
HKEY_CLASSES_ROOT\jarfile\shell\open\command
中的默认项,把路径中的javaw改成java即可,其他部分不变
例如:"C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*
改为:"C:\Program Files\Java\jre7\bin\java.exe" -jar "%1" %*
这样做就好了。谢谢亲
#18
.jar文件默认关联的是javaw,如果你打开的是控制台程序,那是因为控制台程序是不能用javaw打开的,javaw只能打开具有图形界面的Java程序。
如果你想双击打开,可以新建一个记事本文件,并将扩展名改为bat,然后右键-编辑,输入命令 java -jar xxx.jar 保存,双击这个bat文件即可运行xxx.jar。
#1
你用cmd将你的文件打包成jar文件试一试
#2
右键切换打开方式,使用Java(TM) PlatForm SE binary 打开,希望能够帮助到你
#3
右键切换打开方式,使用Java(TM) PlatForm SE binary 打开,希望能够帮助到你
确实是这样设置的
#4
你用cmd将你的文件打包成jar文件试一试
试过好多次了。不行
#5
在CMD里运行:
java jar包名字
看报错
java jar包名字
看报错
#6
右键切换打开方式,使用Java(TM) PlatForm SE binary 打开,希望能够帮助到你
确实是这样设置的
http://jingyan.baidu.com/article/200957617c3619cb0621b44d.html
看看这篇文章
#7
.jar文件默认关联的是javaw,如果你打开的是控制台程序,那是因为控制台程序是不能用javaw打开的,javaw只能打开具有图形界面的Java程序。
如果你想双击打开,可以新建一个记事本文件,并将扩展名改为bat,然后右键-编辑,输入命令 java -jar xxx.jar 保存,双击这个bat文件即可运行xxx.jar。
如果你想双击打开,可以新建一个记事本文件,并将扩展名改为bat,然后右键-编辑,输入命令 java -jar xxx.jar 保存,双击这个bat文件即可运行xxx.jar。
#8
你试一试:
用命令行编译java并生成可执行的jar包
如果想用java编写一个可视化小程序,碰巧手头没有IDE的话,可以用命令行来完成编译、打包等工作。
拿自己编写的“java记事本”为例,介绍一下这个过程:
1.编写源代码。
编写源文件:NotePad.java并保存,例如:E:\myApp\NotePad.java。程序结构如下:
package test;
import java.awt.*;
import javax.swing.*;
//更多包的导入...
class NotePadFrame extends JFrame {
//主界面的设计...
}
//其他相关代码...
public class NotePad {
public static void main(String[] args) {
new NotePadFrame();
}
}
2.打开终端。
打开系统菜单:“开始”->“运行...”->输入“cmd”,打开终端。
执行如下命令转到源文件所在目录:
e:
cd myApp
3.编译源文件。
输入如下命令进行编译:
javac NotePad.java
执行成功之后,会在当前目录下生成一系列.class文件。
4.新建包文件夹。
输入如下命令新建包文件夹:
mkdir test
也可在资源管理器新建此文件夹。
此文件夹必须与源文件中定义的包名完全一致(package test;)。
5.将类文件放到新的文件夹里。
在资源管理器里将编译生成的所有.class文件移动到新建的test文件夹。
6.测试程序是否可正常运行。
在E:\myApp路径下输入如下命令:
java test.NotePad
如果可以正常运行程序,就可以进行下一步了。否则应检查上述步骤的正确性。
7.生成可执行的jar包。
在E:\myApp路径下输入如下命令:
jar -cef test.NotePad NotePad.jar test
以上命令及参数的含义如下:
jar命令为java自带的专用打包工具;
c代表生成新的jar包;
e代表可执行的类,亦即main方法所在的类。书写时要加上包名,在本例中是后面的test.NotePad;
f代表生成的jar包的名称,在本例中是NotePad.jar。此包名可以随意命名,没有规定;
test最后面的这个参数表示将test目录下的所有文件都打包放到新的jar包中。
8.测试jar包是否可正常运行。
在E:\myApp路径下输入如下命令:
java -jar NotePad.jar
如果可以正常运行程序,则说明jar包制作成功。
如果已经将“Java(TM) Platform SE binary”关联到.jar文件类型(通过正常安装jdk后都会正确关联),还可以通过双击来执行此类jar包,其感受与exe文件相同。
用命令行编译java并生成可执行的jar包
如果想用java编写一个可视化小程序,碰巧手头没有IDE的话,可以用命令行来完成编译、打包等工作。
拿自己编写的“java记事本”为例,介绍一下这个过程:
1.编写源代码。
编写源文件:NotePad.java并保存,例如:E:\myApp\NotePad.java。程序结构如下:
package test;
import java.awt.*;
import javax.swing.*;
//更多包的导入...
class NotePadFrame extends JFrame {
//主界面的设计...
}
//其他相关代码...
public class NotePad {
public static void main(String[] args) {
new NotePadFrame();
}
}
2.打开终端。
打开系统菜单:“开始”->“运行...”->输入“cmd”,打开终端。
执行如下命令转到源文件所在目录:
e:
cd myApp
3.编译源文件。
输入如下命令进行编译:
javac NotePad.java
执行成功之后,会在当前目录下生成一系列.class文件。
4.新建包文件夹。
输入如下命令新建包文件夹:
mkdir test
也可在资源管理器新建此文件夹。
此文件夹必须与源文件中定义的包名完全一致(package test;)。
5.将类文件放到新的文件夹里。
在资源管理器里将编译生成的所有.class文件移动到新建的test文件夹。
6.测试程序是否可正常运行。
在E:\myApp路径下输入如下命令:
java test.NotePad
如果可以正常运行程序,就可以进行下一步了。否则应检查上述步骤的正确性。
7.生成可执行的jar包。
在E:\myApp路径下输入如下命令:
jar -cef test.NotePad NotePad.jar test
以上命令及参数的含义如下:
jar命令为java自带的专用打包工具;
c代表生成新的jar包;
e代表可执行的类,亦即main方法所在的类。书写时要加上包名,在本例中是后面的test.NotePad;
f代表生成的jar包的名称,在本例中是NotePad.jar。此包名可以随意命名,没有规定;
test最后面的这个参数表示将test目录下的所有文件都打包放到新的jar包中。
8.测试jar包是否可正常运行。
在E:\myApp路径下输入如下命令:
java -jar NotePad.jar
如果可以正常运行程序,则说明jar包制作成功。
如果已经将“Java(TM) Platform SE binary”关联到.jar文件类型(通过正常安装jdk后都会正确关联),还可以通过双击来执行此类jar包,其感受与exe文件相同。
#9
>ftype jarfile
jarfile="C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*
>assoc .jar
.jar=jarfile
jarfile="C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*
>assoc .jar
.jar=jarfile
#10
>ftype jarfile
jarfile="C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*
>assoc .jar
.jar=jarfile
看不懂,啥意思呀?
#11
.jar文件默认关联的是javaw,如果你打开的是控制台程序,那是因为控制台程序是不能用javaw打开的,javaw只能打开具有图形界面的Java程序。
如果你想双击打开,可以新建一个记事本文件,并将扩展名改为bat,然后右键-编辑,输入命令 java -jar xxx.jar 保存,双击这个bat文件即可运行xxx.jar。
如果想双击运行jar文件,不想通过bat文件运行,有办法吗?
#12
设定运行方式的时候,可以设置加参数 -jar
#13
设定运行方式的时候,可以设置加参数 -jar
我去注册表里看了,javaw的command里,确确实实是加上了-jar "%1"
完整的 "C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*
#14
把注册表项中你编辑那个值中的"W"去掉,其他不变,就行
#15
Sorry,刚才没看清楚你的注册表路径,应该是改
HKEY_CLASSES_ROOT\jarfile\shell\open\command
中的默认项,把路径中的javaw改成java即可,其他部分不变
例如:"C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*
改为:"C:\Program Files\Java\jre7\bin\java.exe" -jar "%1" %*
HKEY_CLASSES_ROOT\jarfile\shell\open\command
中的默认项,把路径中的javaw改成java即可,其他部分不变
例如:"C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*
改为:"C:\Program Files\Java\jre7\bin\java.exe" -jar "%1" %*
#16
修改注册表或者重装jdk
#17
Sorry,刚才没看清楚你的注册表路径,应该是改
HKEY_CLASSES_ROOT\jarfile\shell\open\command
中的默认项,把路径中的javaw改成java即可,其他部分不变
例如:"C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*
改为:"C:\Program Files\Java\jre7\bin\java.exe" -jar "%1" %*
这样做就好了。谢谢亲
#18
.jar文件默认关联的是javaw,如果你打开的是控制台程序,那是因为控制台程序是不能用javaw打开的,javaw只能打开具有图形界面的Java程序。
如果你想双击打开,可以新建一个记事本文件,并将扩展名改为bat,然后右键-编辑,输入命令 java -jar xxx.jar 保存,双击这个bat文件即可运行xxx.jar。