SWT应用程序打包成jar过程及常见问题

1.在工程目录下建立lib目录,把工程依赖的所有第三方jar文件拷到lib下,其中包括swt.jar(用以导出项目用)
2
.使eclipse下的java工程可以正确运行
3
.在工程根目录下建立manifest.mf文件,格式如下
Manifest-Version: 1.0
Class-Path: ./lib/swt.jar ./lib/jai_core.jar ./lib/jcommon-1.0.0.jar ./lib/jfreechart-1.0.1.jar ./lib/JTS-1.7.jar
Main-Class: com.jlu.liuyanbin.Stock

***-***: 后面有且只有一个空格。
Class-Path是依赖的jar,swt.jar就是刚才拷贝到lib下的;每个单独的jar用一个空格隔开
Main-Class是带有main函数的类名,
com.jlu.liuyanbin是包名,Stock是类名
4.右键点击project->export->jar,指定路径(如d:/tojar)和jar名,其它默认后next->next->using existing manifext,选择刚才创建的
manifest.mf,然后finish
5.
d:/tojar目录下会出现name.jar文件,然后做:
-拷贝swt-win32-****.dll到
d:/tojar
-在
d:/tojar建立lib目录,把依赖的所有jar拷贝进去,本例为swt.jar jai_core.jar jcommon-1.0.0.jar jfreechart-1.0.1.jar JTS-1.7.jar
6.双击jar文件就可以运行了.
7.可以使用第三方工具或者"批处理文件+jre"的方法使得此jar脱离jvm而运行.

 

java用jar命令打包mf文件line too long?

 

用java jar命令打包程序时,清单文件包含有太多jar文件的话,每行不得超过78(87 )个字符,
否则出现line too long错误,需要换行编写;jar文件间用空格分开,每行最后也要有空格(最
后一行可没有),而且每行开始也要有空格。
如:
Manifest-Version: 1.0
Main-Class: com.springjava14.aop.App
Class-Path:口lib/spring-1.1.5.jar口
口lib/commons-logging-1.0.4.jar口
口lib/aopalliance-1.0.jar口
口lib/cglib-full-2.0.2.jar
注:口为空格。

 

文件系统不同步问题resource is out of sync with the file system的解决办法
2008/04/18 16:35

在eclipse中,启动run on server时报错:
Resource is out of sync with the file system: '/Test_1_Struts_Spring_Hibernate/WebContent/WEB-INF/.struts-config.xml.strutside'.

查阅资料后发现这是文件系统不同步的问题,是因为在eclipse之外对工程中的resource进行修改引起的;但是,有时没有在eclipse之外进行修改,也会报类似的错误。
解决办法:需要手动刷新一下资源管理器。
(1)在eclipse中,工程目录右键,选择F5(refresh)
(2)设置eclipse自动刷新。
           通过Window->Preferences->General->Workspace,选中Refresh automatically。

SWT程序的发布需要一些步骤:
        1. 将swt的jar库准备好。例如,保存为 ./lib/swt.jar
        2. 将编译好的java程序导出成jar文件,过程中需要保存manifest文件。例如,存为example.mf。如图:


        3. 修改保存的example.mf文件,在其中的第一行下面version行插入一行:Class-Path: ./lib/SWT.jar
        4. 重新导出jar文件,这次要使用修改过的example.mf文件。
        5. 将SWT的本地runtime库复制过来。例如,在windows下,是swt-win32-3232.dll
        6. 可以运行jar文件了。现在的目录中有一个jar文件,一个lib文件夹,一个swt-win32-3232.dll

 

 

打包发布SWT程序


1.因为需要SWT的jar.但是Eclipse3.1.1配合的的SWT不是通过SWT.jar发布的!是org.eclipse.swt.win32.win32.x86_3.1.0.jar。里面包括了JINI的DLL和SWT类文件。
需要下载
http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.1.1-200509290840/swt-3.1.1-win32-win32-x86.zip
这里有SWT.jar,和3个DLL,把他们解压缩出来,备用!
2.通过Eclipse的导出功能,生成一个可执行的jar,MANIFEST.MF文件选择由Eclipse生成,并且保存到项目中。
3.上面2的步骤,只是为了得到MANIFEST.MF文件。下面修改一下这个文件。
加上 Class-Path: SWT.jar
如果还有其他的jar,用空格分开,加到后面
4.再生成一次jar,MANIFEST.MF选择修改后的。
5.将打包的jar,SWT.jar,3个DLL放到一个文件夹下,双击可执行的jar,程序运行!

你可能感兴趣的:(SWT应用程序打包成jar过程及常见问题)