开发工具:IDEA16

运行环境:ubuntu

问题:根据网上的Idea导出jar包的方法,将我的项目导出jar包后运行报错:找不到或无法加载主类。
 
  为了找到这个原因,我重新搭建了一个测试例子,在src/com下新建了一个HelloWorld.java类,输出HelloWorld。然后把它导出jar包,依然报错:找不到或无法加载主类。
  后来打开这个jar包发现在test.jar里边还有一个test.jar包
 
  然后我把里边这个jar包提取出来后,运行java -jar test.jar就不会报错了,也能正常输出HelloWorld
 
  经过各种重复实验,重新尝试每一步的配置,终于发现了错误的地方。
  根据网上的配置,在 Project Structure --> Artifacts中,添加jar包时,选择了copy to the out directory and link via manifest
 
  备注:我参考的Idea打jar包的方法链接是:http://www.cnblogs.com/blog5277/p/5920560.html
    他说:
    选中第一个的话,打完包后是一个jar包
    选中第二个的话,打完包后是一个jar包,外带你项目所用的jar包
 
 
  如果选择了第二个,在下一步的配置中,就会出现两个test.jar。可以看到,上一步骤生成了一个test.jar,并且外边的test.jar还需要再重新创建一个MANIFEST.MF文件
 
  
  经过测试,即使我创建外边的MANIFEST.MF文件时,把里面的test.jar包打进去,依然会报错:找不到或无法加载主类。
 
 
  综上所诉, 我又尝试在最开始选择配置的时候,如果选择extract to the target JAR(提取到目标jar包) 这个选项,那么对于我这个测试项目就完全没问题了,生成的test.jar包里包含MANIFEST.MF文件,并且这个包里不会再有其他的jar包了,就没有问题了
 
  但是如果我生成的jar包,需要引用其他的jar包,需要在下一步,Class Path栏里手动输入引入的jar包。
 
 
  至于这里的classpath如何填写,相当于在之前错误用法时生成的META-INF/MANIFEST.MF文件里所引用的jar包一样。
 
  原创文章,欢迎转载,转载请注明出处!
  

IDEA导出jar包后运行报错 找不到或无法加载主类的更多相关文章

  1. Activemq首次运行报错 “找不到或无法加载主类”

    首次运行Program Files\apache-activemq-5.10.0\bin目录下的activemq.bat文件,报错信息如下: 找不到或无法加载主类 Files\apache-activ ...

  2. cygwin下java报错“找不到或无法加载主类”的故障排除

    win7 下安装了java,命令行下可以正常运行,cygwin下报错:找不到或无法加载主类. 经排查发现是cygwin的~/.bash_profile中画蛇添足的配置了$CLASSPATH: JAVA ...

  3. Linux下Java运行.class文件,报错找不到或无法加载主类

    classpath配置的错误,所以找不到.class文件. 原先的etc/profile中的classpath配置 export CLASSPATH=$JAVA_HOME/lib/tools.jar ...

  4. java 命令行运行时报错:找不到或无法加载主类

    源码如下: 路径目录(...\src\object) //: ch1.10/Command.java /**@author feilong * @version 1.0 */ package obje ...

  5. java编译报错: 找不到或无法加载主类 Demo.class 的解决方法

    原因:java 命令后面的文件不能有后缀名. 解决方法:运行java时候,后面的文件去掉后缀名.

  6. java编译通过,为什么运行却提示找不到或无法加载主类?

    java编译通过,为什么运行却提示找不到或无法加载主类? https://www.zhihu.com/question/36537093 这边提供一个关于程序中含有package关键字,使用“终端”运 ...

  7. 创建spring boot项目并添加多个模块时,启动报 错误: 找不到或无法加载主类

          最近建个项目发现启动报,找不到或无法加载主类,想想肯定是自己配置出问题了,经过排查确实出问题了,(根pom中的bulid为移到子模块中去导致的),下面演示下正确的创建子模块的步奏 1. 创 ...

  8. zzw原创_cmd下带jar包运行提示 “错误: 找不到或无法加载主类 ”

    在windows下编译java,由于是临时测试一下文件,不想改classpath,就在命令行中用 -cp 或classpath引入jar包,用javac编译成功,便使用java带-cp 或classp ...

  9. maven打包 运行出现 错误: 找不到或无法加载主类 jar

    使用maven进行打包成jar包后 使用java -jar运行jar包 出现 错误: 找不到或无法加载主类 jar 主要是由于依赖没下载好,重新下载依赖 以及要在项目的pom.xml里面添加 < ...

随机推荐

  1. 关于原子哥ENC28J60网络通信模块接收数据代码的一点疑惑

    ---恢复内容开始--- 这几天做STM32的ENC28J60网络通信模块,自己在原子哥的代码上进行修改测试,,发现一个问题,电脑和板子进行通信的时候总隔一段时间板子就死机了. 使用自己的就不会死机, ...

  2. Docker的Mysql数据库:把数据存储在本地目录

    Docker mysql 把数据存储在本地目录,很简单,只需要映射本地目录到容器即可 1.加上-v参数 $ docker run -d -e MYSQL_ROOT_PASSWORD=admin --n ...

  3. 20155313 杨瀚 《网络对抗技术》实验一 PC平台逆向破解(5)M

    exp1 PC平台逆向破解(5)M 一.实验内容 1.手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. 2.利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发 ...

  4. mfc CAnimateCtrl

    知识点: CAnimateCtrl成员函数 播放avi动画 一. CAnimateCtrl成员函数 Autoplay; CAnimateCtrl ::成员函数 Open 打开avi视频 Play 播放 ...

  5. springmvc 结合 自动封装异常信息输出为json 报错 500内部服务器错误的原因

    补充:还有一个原因是因为spring的对象没有被成功注入,例如 mapper没有被成功注入,抛出异常时在这种封装场景下将会抛出 500 服务器内部错误, 这种情况下要排查还是靠debug然后看看到底是 ...

  6. Window下mysql环境配置问题整理

    Window下mysql环境配置问题整理 参考如下链接. 无需安装解压版mysql包 创建选项配置 首次启动服务 用mysqld初始化目录 安装后设置和测试 启动服务错误信息 管理员模式打开cmd m ...

  7. 设计模式 笔记 中介者模式 Mediator

    //---------------------------15/04/27---------------------------- //Mediator 中介者模式----对象行为型模式 /* 1:意 ...

  8. Python RASP 工程化:一次入侵的思考

    前言 今天讲的内容会很深,包括一些 Python的高级用法和一些自己创造的黑科技,前半部分内容你们可能听过,后半部分内容就真的是黑科技了... 深入的研究和思考,总会发现很多有意思的东西.每一次的研究 ...

  9. git 报错 error: insufficient permission for adding an object to repository database ./objects

    参照:http://stackoverflow.com/questions/1918524/error-pushing-to-github-insufficient-permission-for-ad ...

  10. ANSYS渡槽槽身动水压力的施加(2)——U型渡槽

    U型渡槽动水压力荷载施加命令及说明 程序中需要用到ANSYS重启动,因为需提取前一步加速度结果以施加部分动水压力: 默认Y方向为重力方向,X方向为横槽向,Z方向为纵槽向: 需准备地震波文件: 需先将槽 ...