想了一个程序打包生成JAR文件,双击执行提示Failed to load Main-Class manifest attribute from D:\Java...JAR

cnhuai 2008-06-25 06:19:57
如题
...全文
353 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnhuai 2008-12-15
  • 打赏
  • 举报
回复
1.jar文件打包
假设需要打包的文件如下:
classes\com\albertsong\MyApp.class
classes\com\albertsong\Aaaa.class
classes\com\albertsong\util\Bbbb.class
(其中MyApp包含main函数)
建一个mymanifest.mf 文件,内容如下:
Main-Class: com.albertsong.MyApp


建一个myjar.bat文件,内容如下:
set JAVA_HOME=C:\jsdk1.5.0_09
set PATH=%JAVA_HOME%\bin
set CLASSPATH=%JAVA_HOME%\lib\tools.jar;
jar cvfm MyApp.jar mymanifest.mf -C classes .

这两个文件都放到和classes同一个目录,即目录结构象下面一样
MyApp\classes\com\albertsong\MyApp.class
MyApp\classes\com\albertsong\Aaaa.class
MyApp\classes\com\albertsong\util\Bbbb.class
MyApp\mymanifest.mf
MyApp\myjar.bat
然后点myjar.bat这个文件执行就可以了:)

2.执行jar文件
建一个目录MyApp/release。
将生成的MyApp.jar复制到这个目录。
在这个目录里新建一个批处理文件run.bat,内容如下:
set JAVA_HOME=C:\jsdk1.5.0_09
set PATH=%JAVA_HOME%\bin
set CLASSPATH=%JAVA_HOME%\lib\tools.jar;
javaw -jar MyApp.jar

3.其它
1)jar cvfm MyApp.jar mymanifest.mf -C classes .
这行命令,最后的.一定不能掉,jar命令给出的帮助的例子是
jar cvfm classes.jar mymanifest -C foo/ .
但是在windows下应该改成
jar cvfm classes.jar mymanifest -C foo\ .
或者
jar cvfm classes.jar mymanifest -C foo .
2)如果应用程序比较大,可能会用到其它的库,这时可以在release目录下建一个lib
然后在run.bat的CLASSPATH中添加用到的库。
set CLASSPATH=%JAVA_HOME%\lib\tools.jar;lib\ccc.jar;lib\ddd.jar;
3)如果要指定java程序使用的内存,这样
javaw -ms100m -mx256m -jar MyApp.jar
上面指定了使用最小100M最大256M内存。
4)如果main函数要带参数
javaw -ms100m -mx256m -jar MyApp.jar arg1 arg2
5)如果不能在控制台看到有关信息,可以用java来执行jar包
java -ms100m -mx256m -jar MyApp.jar arg1 arg2
javaw在后台执行。
6)如果bat文件一闪而过,看不到输出,可以在文件最后一行加上pause,最好的是通过cmd.exe来运行run.bat。
laorer 2008-06-26
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 cnhuai 的回复:]
都打包了 到哪里设置MANIFEST.MF?
是在打JAR包的命令里吗
[/Quote]
jar命令,你也可以用 ant来做
laorer 2008-06-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cnhuai 的回复:]
顺便问下:
class文件或者是JAR包
到另外一台电脑中
需要什么运行环境即可?
我装个JDK就可以了吧?
[/Quote]
如果你所需要的 jar也一起包含进去了 ,只要装个jdk就行了
lingirl 2008-06-26
  • 打赏
  • 举报
回复
听说用jb打包就可以直接双击运行不出问题。
cnhuai 2008-06-26
  • 打赏
  • 举报
回复
顺便问下:
class文件或者是JAR包
到另外一台电脑中
需要什么运行环境即可?
我装个JDK就可以了吧?
cnhuai 2008-06-26
  • 打赏
  • 举报
回复
都打包了 到哪里设置MANIFEST.MF?
是在打JAR包的命令里吗
老紫竹 2008-06-25
  • 打赏
  • 举报
回复
Main-Class 没有写好

他应该是带有路径的完整的类名
比如

net.java2000.test.Test
lord_is_layuping 2008-06-25
  • 打赏
  • 举报
回复
因为你没有设置好MANIFEST.MF
Manifest-Version: 1.0
Sealed: true
Main-Class: servletName(你要运行的程序名称,不要带class)
Class-Path: A.jar jbossall-client.jar(加入你需要的包)

记得最后要多一个回车

tanlingyun 2008-06-25
  • 打赏
  • 举报
回复
打包没打好

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧