看此文前请保证jar包中有至少一个Main方法入口,及图形化的界面。
并保证META-INF/MANIFEST文件中的Main-Class已经指向之前实现的main方法入口。
最近硬盘坏了,于是重新安装了OS,发现拷贝后的jdk或jre(未经安装的版本),不能打开jar文件执行(jdk版本1.6_11),
于是在打开方式中指向了javaw程序,发现无效,并提示"cannot find main class", 与此同时windows把jar类型的文件关联到了指定的javaw程序上,上网找了一通,没有人提及这个问题的解决办法,而显然这个问题又不是由开篇中提到的问题导致的。
于是在注册表中当前用户配置中删除了当前jar类型的定义。但是重新尝试后依然无效。
于是重新安装了jdk,发现这次可以打开jar文件了,并且这次用来打开的程序从打开方式来看仍然是javaw。比较注册表中文件类型的定义,并没有差别。从文件夹选项 -> 文件类型来看终于看到了差别,高级里面的open操作定义如下:
"C:/Program Files/Java/jre6/bin/javaw.exe" -jar "%1" %*
而如果我们自己选择javaw,默认的open操作是没有 -jar参数的,必须手工加进去。
我们知道java启动jar包的参数是 -jar,但是记得以前javaw是可以直接打开jar的,不知什么时候起也需要带有-jar参数了。
所以对于一个拷贝的绿色jre只要修改一下open操作的定义就可以解决上面的问题了。
解决了上面的问题,又产生了新的问题,之前选择打开的javaw程序在打开方式中丢不掉了,比较多余,这个可以在注册表中修改
在HKEY_CLASSES_ROOT/Applications下面找到响应的程序删除就可以了,原来每次用一个程序打开一个类型的文件windows都会在
注册表中这个地方留下相关的记录
相关文章
- Windows 10下无法安装 CAD 2013/2014的解决方法
- 【问题记录】Visual Studio 下的Qt工程无法打开 ““ 文件和LNK1104 无法打开文件“”错误
- LNMP下Nginx 中文文件名或目录404无法访问的解决方法
- 关于LINK : fatal error LNK1104: 无法打开文件“E:\C++\MFC\day1\x64\Debug\windows.exe”这一类的问题处理方法
- 解决VS 无法打开文件“opencv_ml249d.lib的解决方法“以及”由于找不到MSVCP100D.dll,无法继续执行代码。重新安装可能会解决此问题。“
- 已加载“C:\Windows\System32\ntdll.dll”。无法查找或打开 PDB 文件。解决方法。
- .xlsx文件总是默认用2007 Microsoft Office component 打开,且无法更改用EXCEL打开的解决方法
- Winio驱动在64位windows下无法使用的解决方法
- VS 2017 VC++项目出现 LNK1104 无法打开文件"libcmtd.lib" 的解决方法
- 安装VS 无法打开数据文件\'C:\\Users\\Administrator\\AppData\\Local\\Temp\\SIT12124.tmp\\deffactory.dat的解决方法