java运行jar程序以及找不到主类的解决办法

1. java -jar .jar 或者 javaw -jar .jar

这两个方法具体的区别见另一篇博客java javac 和 javaw 好的, 这个方法很简单关键要在jar所在目录下去执行仅此而已

2. 更改注册表信息

有的朋友可能想直接双击选择java ™ platform
在这里插入图片描述
但是发现双击后直接运行console然后闪退, 这里其实是因为系统里链接了java运行命令,
这和你在控制台里直接输入 java .jar效果是一样的会报错:
在这里插入图片描述
这里有两种解决办法一种是用第一种方法 java -jar .jar运行另一种是更改链接方式

2.1 打开win+R

在这里插入图片描述

2.2 进入注册表

其实就是下图的这个但关键是怎么找到的
在这里插入图片描述

2.3 找到java.exe

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4 修改

把第一个改为

C:\Program Files\Java\jdk1.8.0_74\bin\javaw.exe" -jar "%1" 原来可能没有或者没有-jar

这样改完以后对jar运行java就会自动运行javaw -jar命令相当于创建了个快捷方式

2.5 过程总结

  1. 打开注册表
  2. 在上方查找粘贴
计算机\HKEY_CLASSES_ROOT\Applications\javaw.exe
  1. 打开第一个 把变量值改为
C:\Program Files\Java\jdk1.8.0_74\bin\javaw.exe" -jar "%1" 注意不要去改java.exe的

这个具体的路径可以在你安装jdk的路径下找到bin找到javaw.exe查看
在这里插入图片描述

3. jar 中的 MANIFEST.MF 文件

这个文件其实就相当于是一个hadoop中的name node 用来存放各种配置和路径
查看这个文件的话
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里面的CLASSPATH 还记得我们配置JAVA环境变量的时候的CLASSPATH么 没错放得应该是项目中导入或者引用的一些引用类, 而下面的那个MAINCLASS就是整个程序的入口若果报错找不到主类的话不是因为命令用错了就是因为这个地方写错了. 它这样写应该是因为所有的类都放在了edsim51di这个包裹下也就是程序里有package这一句. 再复习下上节的知识 .CLASS中放的是可以被JVM去读取的JVM字节码而不是编程语言或者依赖硬件的机器码.

原创文章 28 获赞 44 访问量 3799

猜你喜欢

转载自blog.csdn.net/qq_42141943/article/details/105980298
今日推荐