Topic: 正确打包Application的方式?

  Print this page

1.正确打包Application的方式? Copy to clipboard
Posted by: jfml
Posted on: 2003-06-02 16:22

一个项目

src

classes

config

resources

lib

比如哟上面4个目录,src和classes就不说了,config下面上一些xml和properties类型的项目配置文件,resources下面是一些icon,image等等,lib下是用到的第三方组件jar

请问究竟该如何打包才能保证最后的jar文件可以正常运行呢

2.Re:正确打包Application的方式? [Re: CrazyJavar] Copy to clipboard
Posted by: Jove
Posted on: 2003-06-02 23:35

好像这样的目录结构打包成一个jar比较麻烦
把所有lib/*.jar解压 和config resource src放在classes目录下
打成一个jar
但是原来用new File("config/a.properties")的就不能用了
应改成URL getResource(String name)或是InputStream getResourceAsStream(String name)

建议你还是保持原来的目录结构,写个bat什么的启动算了
或是用installanywhere做成安装包

3.Re:正确打包Application的方式? [Re: CrazyJavar] Copy to clipboard
Posted by: jfml
Posted on: 2003-06-04 09:40

是这样的,我的App要通过WebStart方式启动

一定要打成一个或多个jar的啊

4.Re:正确打包Application的方式? [Re: CrazyJavar] Copy to clipboard
Posted by: liufancjsdn
Posted on: 2003-06-04 09:52

war is ok?

5.Re:正确打包Application的方式? [Re: CrazyJavar] Copy to clipboard
Posted by: jfml
Posted on: 2003-06-04 09:57

war?

我试试看

不过我的app是C/S的Swing Application

不是Web Application

不知道成不成

6.Re:正确打包Application的方式? [Re: CrazyJavar] Copy to clipboard
Posted by: vjava
Posted on: 2003-06-04 17:42

有介绍war 使用的吗

7.Re:正确打包Application的方式? [Re: CrazyJavar] Copy to clipboard
Posted by: terry39
Posted on: 2003-06-05 13:54

只要把 classes里的文件打包就可以了
用 winzip 吧 压缩后改成 .jar的就可以了
jar里顶级目录里必须有个META-INF目录
META-INF里面放一个 MANIFEST.MF 文件
用文本编辑器 在 MANIFEST.MF 里指定 main() 所在的类
例如:
Main-Class: app.Run
还可以指定你的第三方的运行包
Class-Path: lib/ lib/ircxlib.jar

我的 MANIFEST.MF 文件的内容如下
Main-Class: app.Run
Class-Path: lib/ lib/ircxlib.jar lib/kunststoff.jar lib/metouia.jar

8.Re:正确打包Application的方式? [Re: CrazyJavar] Copy to clipboard
Posted by: jfml
Posted on: 2003-06-05 15:54

楼上的,你那样的打法,lib目录就必须在jar的外部了

不然访问不到的吧

9.Re:正确打包Application的方式? [Re: CrazyJavar] Copy to clipboard
Posted by: terry39
Posted on: 2003-06-05 17:39

在jar的外部有什么关系? 不是蛮好么? 只要文件结构清晰就好啊 ...

我做的JAR包只有一个运行类,其他的都放到lib目录里了 呵呵 一种习惯

只是不知道是否有更加科学的打包方法?

10.Re:正确打包Application的方式? [Re: CrazyJavar] Copy to clipboard
Posted by: terry39
Posted on: 2003-06-05 17:45

我的做法:
发布出去的程序目录<AppDir>
|-----<lib> 类库目录(第三方的 或 自己的)
|-----<resouse> 资源文件目录(如:图片等)
|-----<conf> 配置文件目录
|------run.jar 开始运行的文件
|----<META-INF>
|   |----MANIFEST.MF
|----Run.class [main()]


11.Re:正确打包Application的方式? [Re: CrazyJavar] Copy to clipboard
Posted by: jfml
Posted on: 2003-06-05 20:05

不行的

楼上的朋友

你这样的格式就不能以web start形式发布了

而我却恰恰需要用WS来发布程序

所以所有的项目资源必须在1-N个jar中

12.Re:正确打包Application的方式? [Re: CrazyJavar] Copy to clipboard
Posted by: tryubest
Posted on: 2003-06-05 21:52

学到点东西,up!

13.Re:正确打包Application的方式? [Re: CrazyJavar] Copy to clipboard
Posted by: jfml
Posted on: 2003-06-06 16:13

打包后用WebStart启动,WS的日志记录了下面的错误,郁闷啊

NOTICE - load almdef file:"jar:file:./resources.jar!/config/system.xml" ...
org.dom4j.DocumentException: 系统找不到指定的文件

14.Re:正确打包Application的方式? [Re: CrazyJavar] Copy to clipboard
Posted by: fly2fire
Posted on: 2003-06-10 14:13

请问CrazyJavar,你现在解决了么?我的程序也是这种模式的.也遇到了这种问题.
据我现在所知的:
可以打包成多个Jar,在jnlp文件中指定多个resource好了,根据文档上所说:
如这样的多行<jar href="a/b/abc.jar">
不过我还没有做完.有一些问题.

15.Re:正确打包Application的方式? [Re: CrazyJavar] Copy to clipboard
Posted by: jfml
Posted on: 2003-06-10 19:06

我也是分了好几个jar在WS里

不过还有些问题


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923