问题:
一个纯java工程,有一个main函数,使用FatJar插件打包成了一个jar包(jar中已经包含所有需要的包和类),而且manifest.mf文件中也设置了主类。然后出现了下面的问题,本机环境:j2sdk1.4.2_01 双击xxx.jar,运行没有有问题,一切正常。
打开控制台 命令 javaw -jar xxx.jar 没有任何反应,也不报错。为什么?
打开控制台 命令 javaw xxx.jar 弹出窗口对话框,“could not find the main class”可是我的manifest.mf文件已经设置了mainclass 了啊,
而且我双击xxx.jar也能正常运行的。为什么?
打开控制台 命令 java -jar xxx.jar 运行报错,说是找不到某个类(不是主类,是个运行时需要的类javax.sql...)然后我把这个xxx.jar放到另外一个机子上,使用 java -jar xxx.jar这个命令就没有报错,运行正常。为什么在我机子上就不行呢,如果我机子上
环境变量配置有问题,那怎么我机子上双击xxx.jar又能正常运行呢?
请高手解答,网上该找的我都找了,没找到答案
多谢了

解决方案 »

  1.   

    我用其他的打包工具打好,和楼主的正相反,java -jar **.jar --gui,能运行,可双击却不行,关注
      

  2.   

    想必楼主应该是用的eclipse打包的.你打包时候的jar目录是eclipse自动为你搞好的.但是你要在命令行里 javaw -jar xxx.jar 确是使用的C盘C:\Program Files\Java下的哪个JAR肯定就有问题拉.不信你可以用命令行打包,然后在命令行里 javaw -jar xxx.jar ,就冒问题了.....个人之见,仅当参考!
      

  3.   


    可是我换另个机子怎么可以用呢?而且我刚试了在另外个机子的不同盘下运行都没问题。如果我机子目录有问题,可是我在我机子上双击怎么可一直接正常运行呢?就是控制台java -jar xxx.jar有问题。
      

  4.   

    jar包是在我机子上打的啊,凭什么放他机子行我机子就不行啊。“人品问题”,这是最恐怖的问题。呵呵
      

  5.   

    为什么非要用工具打包?直接用jar打不行么?
      

  6.   

    manifest.mf 文件格式是否正确?这个文件的规范非常死!Main-Class:这个必须得有而且还得区分大小写,冒号后面必须得有且只能有一个空格!在 manifest.mf 结束处敲两个回车,得保证有至少两个空行。
      

  7.   

    你可以用 java -version 看看你使用的是哪个版本的java
      

  8.   

    一语道破梦中人啊~~~~我装的明明是1.4的jdk 执行java -version 竟然显示的是1.3,原来我机子安装了oracle的客户端,而其oracle的环境变量path路径在我的JAVAHOME 的path前面了,所以执行控制台的时候就使用了oracle的java虚拟机1.3的版本,所以出了问题,而为什么双击没有问题呢,因为我的jre是1.4的,所以没有问题。
    我把oracle的path路径配置放到JAVAHOME后面,然后java -version 显示1.4,问题解决了~~~多谢这位仁兄了,太感谢了!!同是感谢关注本帖的所有朋友!!
    也希望以后大家不要犯我这样的错误,嘿嘿~~