mimi_van

吞下寂寞的恋人
posts - 30, comments - 45, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理


很多时候,程序都不是像前两篇写的那么简单,<如何用My Eclipse 发布 带mianfes.mf 的 jar 文件(一) >
                                                                                    <如何用My Eclipse 发布 带mianfes.mf 的 jar 文件(二) >
很多时候,程序都要用到第三方jar文件,比如最常用的,跟MS-SQLSERVER 交互的就需要用到msbase.jar,mssqlserver.jar,msutil.jar这三个驱动。

在eclipse中,我们都是依靠 右键单击项目,在 Java bulid path 中添加 来完成。
明明在eclipse中 测试成功的项目,发布成jar包后就是没法用。 这里的原因就是这些第三方jar文件没加载进来。如果你在dos控制台下运行你的jar包,也会看到这样的提示。

可是,到底这些第三方jar文件要配置到哪里呢??这个问题也是困惑了我很久的。

在网路上看到,很多人说,在 环境变量 里的 classpath 里进行配置,配置的时候要写绝对路径哦,要加上第三方jar文件的文件名哦。我试了,依然都找不到呢

还有人说,在dos 下运行的时候 记得要 手动指定,比如: -classpath 或 -cp ,我也试了,还是不行的。

后来找到一篇很好的文章,解决了我的困惑。<这篇文章我也有转载到这里,名字是:jar参数运行应用时classpath的设置方法 >

当用java -jar yourJarExe.jar来运行一个经过打包的应用程序的时,你会发现如何设置-classpath参数应用程序都找不到相应的第三方类,报ClassNotFound错误。

实际上这是由于当使用-jar参数运行的时候,java VM会屏蔽所有的外部classpath,而只以本身(yourJarExe.jar)的内部class作为类的寻找范围。

原来如此呢

解决的办法可以参看那篇文章,仔细看哦,我看了好几遍的...(呵呵...没办法啊,我很笨的呢)

另外,还有一个办法就是网路上经常说的,做个exe文件吧。虽然执行的时候,依然需要 jre的 环境,但至少有一个好处就是,它可以很方便的将 第三方jar文件捆绑进去...

关于这个exe文件的制作,不瞒大家说,我又是一通有研究,唉.....有时候,我真的很郁闷,为什么别人一看就懂的问题,我却要花几倍的时间,我确实是不上道啊...........

下面我就来说说我自己的亲身体会吧。

我选择的 exe 封装 工具是 JSmooth ,这个东东虽然好用,可是有两个地方还是很让人恼火的。
一个就是,最好把你要生成exe的可执行jar文件,和你用到的第三方jar文件,还有图片(用来设置exe需要的),这几样通通放到一个目录下。
在一个就是,下面选择mianfest.mf文件时,必须先选择 地下的 embedded jar,这个选好了,在mianfest.mf的浏览里你才能看到 要选的 main 主文件

下面看我自己的实践体验:

1,首先你得去下在一个 JSmooth,很多很多的。(放心吧,我都能下载的到,你一定也可以)
     安装后,在文件夹下,双击这个文件 jsmoothgen.exe,看到以下的界面 (我的是 jsmooth-0.9.9-7哦)
     
     

    
  这是个欢迎界面了。

2.点击右边的 Skeleton 如图:






Skeleton Selection 我选择的是 Windowed Wrapper
Skeleton Properties 选择 Launch java app in the exe process
选择好了后,接着点击右边的 Executable

3. Executable 界面:
    在下面的界面中,Executable Settings 里 有三个选项(鼠标滑动到小问号上,就会有说明德)

                           <1>. Executable Binary: 写一下你希望生成的 exe文件名,记得要带着扩展名的。这里只写名字即可,不用管路径。
                           <2>. Executable Icon: 选择一副图片 作为 即将生成的exe文件的 图标,图片尺寸好像有规定,不过我自己试了大的图片,除了有些变形外,还是可以用的。
                           <3>. Current directory:  这个选项我没选过,默认空就好了。


 

4.点击Application,看到下面的界面:

    这里要强调一点就是:不能先去选择Main class,你点击最右边的Browser,会发现无法选择的。
    需要先选择下面的 Embedded jar,----  Browser,---  选中后,在反过来选择 Main class
    这两个选择好了后,在最下面有一个 Classpath 选项,请把你用到的第三方jar文件添加至此处。
    然后基本就可以了

    



5.其实下面还有一个 JVM Selection ,和 JVM Config,这两个,如果你是在自己的机器上使用,这两个基本默认就好,如果你运行 这个exe 的环境和你的机器上的jre版本不同,那就要在设置了,我也正在看这里,因为我今题那就遇到了此问题。会在补充的。

6.前面设置都ok了,就可以选择菜单栏里的project 下的 compile,这时候,会跳出一个对话话,问你要保存exe文件要保存到哪里,你选择一下,其他的不用动。

    这里保存的其实是两个文件,一个是 exe 文件,一个是 相对应的 同名的xml 文件,在那个xml文件里 有这个exe的信息。

   去你生成exe的路径下检查一下吧,应该是可以用的了。


评论

# re: 用 My Eclipse 发布的带有第三方jar 的jar文件 和 JSmooth 的使用  回复  更多评论   

2007-12-13 17:18 by kingfengks
不错,顶下

# re: 用 My Eclipse 发布的带有第三方jar 的jar文件 和 JSmooth 的使用  回复  更多评论   

2008-01-20 12:32 by SWT
我的SWT包应该怎么加进去阿?

# re: 用 My Eclipse 发布的带有第三方jar 的jar文件 和 JSmooth 的使用  回复  更多评论   

2008-01-21 10:45 by mimi_van
这个问题我没有做过啊,不敢乱说的。你的swt包是什么包啊。能不能加在classpath里呢。

尝试有结果了吗?
希望共享你的方法


只有注册用户登录后才能发表评论。


网站导航: