当前位置: 代码迷 >> J2SE >> jar包无法运行解决办法
  详细解决方案

jar包无法运行解决办法

热度:143   发布时间:2016-04-24 02:30:50.0
jar包无法运行
打完jar包后,出现

------解决方案--------------------
确保java -jar *.jar能执行,不能执行可能是MAIN没有添加或是jar没引入。

java -jar *.jar可以执行,双击不可用,需要再工具-文件夹选项-文件类型-新建
或者重装JDK
------解决方案--------------------
现在习惯Ant打jar包,楼主看看ant教程,又方便,而且企业级应用都是Ant来构建的,为以后的工作打基础
------解决方案--------------------
一般都是java -jar *.jar
------解决方案--------------------
我昨天也遇到这类问题 总结了些资料 你看看吧


教你做一个能运行的jar包 (

这里说的运行是指用 命令: java -jar *.jar 来运行jar包中的java程序

第一步:我们只有一个Hello源文件,内容如下:
public class Hello
{
public static void main(String[] args)
{
System.out.println("Hello");
}
}
第二步:把它编译成class文件 ,这个大家应该都会,呵呵
命令如下,在cmd提示符下输入:
javac Hello.java
这样,就生成了一个Hello.class文件
第三步(重点):编辑一个清单文件a.txt,内容如下:
Manifest-Version: 1.0
Created-By: 1.5.0_05 (Sun Microsystems Inc.)
Main-Class: Hello
6666666666
重点说明:
1.清单文件的文件名起什么都行,扩展名写什么都行,扩展名不写也行,不分大小写。就叫a.txt吧
2.Manifest-Version:后有一个空格,一定要有,我试了近百次了,没有不行。
3.Created-By:后有一个空格。
4.Main-Class:不分大小写。后有一个空格。
5.6666666666:清单文件有第四行,用空格占位也行,别的字符也行,为方便看我用666
 
第四步(重点啊):
Hello.class和a.txt两个重要文件,都在d:\abc\目录下
在cmd中执行(d:\abc\目录下):jar cvfm rr.jar a.txt Hello.class
OK了,包打完了,运行一下试试
在cmd中执行 java -jar rr.jar
结果:Hello 呵呵,这就OK了
重点说明:
1.rr.jar文件名自己起,扩展名一定要是jar
2.要想打包多个文件,这就样jar cvfm rr.jar a.txt Hello.class a.class 或jar cvfm rr.jar a.txt ×
 
如果.class文件在包中,情况如下:
第一步:
我们只有一个Hello源文件,内容如下:
package org;//这是多了org包
public class Hello
{
public static void main(String[] args)
{
System.out.println("Hello");
}
}
第二步:
把它编译成class文件 ,这个大家应该都会,呵呵
命令如下,在cmd提示符下输入:
javac Hello.java
这样,就生成了一个Hello.class文件
第三步:编辑一个清单文件a.txt,内容如下:
Manifest-Version: 1.0
Created-By: 1.5.0_05 (Sun Microsystems Inc.)
Main-Class: org.Hello
6666666666
重点说明:这里多了org
第四步:
Hello.class在d:\abc\org下 , a.txt文件在d:\abc\目录下
在cmd中执行(d:\abc\目录下):jar cvfm rr.jar a.txt org
OK了,包打完了,运行一下试试
在cmd中执行 java -jar rr.jar
结果:Hello 呵呵,这就OK了
以上内容,我试了近百次,保正无误,请认真操作,注意空格和大小写

参数表:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...   
  选项:   
  -c 创建新的存档
  -t 列出存档内容的列表
  -x 展开存档中的命名的(或所有的〕文件
  -u 更新已存在的存档
  -v 生成详细输出到标准输出上
  -f 指定存档文件名
  -m 包含来自标明文件的标明信息
  -0 只存储方式;未用zip压缩格式
  -M 不产生所有项的清单(manifest〕文件
  -i 为指定的jar文件产生索引信息
  -C 改变到指定的目录,并且包含下列文件:

另外 是要确保jar包名是全英文的(可以含数字和下划线),才有执行的可能



------解决方案--------------------
加我QQ 519582737 我给你看看具体情况吧

探讨

有图形界面的,我做的个网络抢答器
引用:

我猜很可能是你的jar包本来就是 一个简单的System.out.println() 只会在命令行下打印东西,没有任何图形界面部分,所以在命令行下能看到输出,而双击很快闪一下就过去了

如果是这样,没有任何问题,因为你没有自己写图形界面,就是会这样

引用:
……
  相关解决方案