花了几天时间学习java,今天制作了一个jar包,遇到一个奇怪的问题,打好的jar包使用命令

java -jar test.jar

可以正确运行,但是双击或是在cmd中运行,提示下面的错误:

C:\Users\Administrator>D:\work\temp\classes\test.jar

Exception in thread "main" java.lang.NoClassDefFoundError: D:\work\temp\classes\
test/jar
Caused by: java.lang.ClassNotFoundException: D:\work\temp\classes\test.jar
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)

Could not find the main class: D:\work\temp\classes\test.jar.  Program will exit

解决办法

打开注册表项,HKEY_CLASSES_ROOT\Applications\java.exe\shell\open\command, 修改数据为"C:\Program Files\Java\jre6\bin\java.exe" -jar "%1",即增加了参数-jar

或者直接导入下列注册表文件

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Applications\java.exe\shell\open\command]
@="\"C:\\Program Files\\Java\\jre6\\bin\\java.exe\" -jar \"%1\""

注意:

若双击打开jar包使用的是javaw,则需要修改javaw对应的注册表项。

java与javaw区别如下:

如果是基于纯文本的编成用java。
如果是图形化但随时打印成纯文本用java。
如果你在检查错误,用java。
如果程序是纯粹的图形化的,而且你需要提升速度,用javaw。

转载于:https://blog.51cto.com/gavinx000/826484

关于运行jar包时的一个错误相关推荐

  1. 运行jar包时指定prod时报异常

    1 问题 运行jar包时指定prod时报异常,异常如下: PS D:\Workspace\ZJ\dataPlatform\dataPlatform-api\target> java -jar . ...

  2. 怎样在运行jar包时指定jdk

    正常情况下,运行jar包使用命令是: java -jar xxx.jar 这里默认使用JAVA_HOME环境变量中的jdk. 如果想要指定jdk路径运行jar包,可以使用以下命令: %~dp0\jav ...

  3. java -jar命令运行jar包时指定外部依赖jar包

    大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口.具体的方法是修改jar包内目录META-INF下的MANIFE ...

  4. eclipse 导出可运行jar包时三种Library handling的区别

    我们在eclipse中打包一个可运行的jar包的时候,Library handing中的选项有下面三种: 那么eclipse中Runnable JAR file的这三种打包方式有什么区别呢? 第一个E ...

  5. maven编译jar包时打一个瘦包,依赖包和配置文件到jar包外面

    背景 打的jar包很大 很多时候我们在开发的时候,maven的依赖包非常多,导致我们最后打的一个jar包有一百多MB,需要将包上传到liunx环境耗时非常久,很多时候我们并没有改变依赖包,而只是改变我 ...

  6. Java运行jar包时,指定内存大小

    参考:Java运行时指定内存大小_u013738122的博客-CSDN博客 java -jar -Xms1024m -Xmx1536m -XX:PermSize=128M -XX:MaxPermSiz ...

  7. Hadoop 运行jar包时 java.lang.ClassNotFoundException: Class com.zhen.mr.RunJob$HotMapper not found...

    错误如下 Error: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class com.zhen.mr.RunJob$H ...

  8. Dockerfile中通过ENV指定动态参数在RUN时传递参数(部署后台jar包时指定端口为例)

    场景 CentOS7中使用Dockerfile部署后台jar包: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119818808 ...

  9. Java中通过命令行启动jar包时指定编码

    场景 Java中运行jar包的命令是 java -jar badao.jar 但是在Windows中通过这种方式运行jar包的话,会因为中文乱码的问题导致 Jar包运行异常. 注: 博客: https ...

最新文章

  1. SAP RETAIL MM41维护商品主数据的时候可以维护分类数据
  2. Java 摄氏和华氏之间的转换
  3. vue使用query传参页面刷新数据丢失问题
  4. oracle10g数据库热备份,Oracle10g数据库冷备份脚本文件
  5. Mysql导入数据时-data truncated for column..
  6. linux字符设备驱动在哪里设置,从点一个灯开始学写Linux字符设备驱动!
  7. POJ 2236 Wireless Network
  8. phpwind升级php7,【原创文章】升级phpwind为https
  9. 编写VTK文件,导入paraview显示
  10. HashMap什么时候由链表转红黑树
  11. flv f4v mp4 视频播放器代码
  12. c语言用户态锁使用,用户态自旋锁、读写自旋锁及互斥锁
  13. 命令行运行ktr和kjb
  14. 关于 Macbook 外接显示器模糊问题
  15. Springer的latex压缩包上传转不了pdf
  16. 量化交易 实战第十三课 打分法选股
  17. lua 5.3.5 使用pairs遍历table时, 遍历结果为什么是随机的
  18. 手机智能群控系统开发
  19. 51单片机电子钟 是如何做成的(3)---电子钟总体结构与操作
  20. 关于Spring.split()踩坑

热门文章

  1. cast函数_关闭RTTI后dynamic_cast和typeid报异常
  2. mysql cmd 删除表_MySQL查看表和清空表的常用命令总结
  3. ubuntu meld比较文件差异
  4. Spark基础学习笔记05:搭建Spark Standalone模式的集群
  5. Java讲课笔记12:static关键字
  6. 大数据学习笔记02:在私有云上创建与配置虚拟机
  7. 2017.10.23 卡牌游戏 失败总结
  8. 2017.9.17 选数 失败总结
  9. 2017.3.25 矩阵快速幂 求斐波那契数列第n项
  10. 2017.3.12 每日小记