jar打包问题

onetudy 2008-01-04 01:35:47
在Eclipse下用Java Socket类与GUI设计控件 SWT Designer做了个数据接收程序。调试程序运行是正常的。但是无论用Eclipse自带的Jar到处功能还是用Fat jar打包成一个jar后的jar文件都不能运行,并且没有任何错误提示。不知是什么原因。
大家有没有遇到过这种情况?
该包含的支持包我都已经包含了,并且制定了main Class,以前打包过一个串口的程序,不知道这个是咋回事了:(
...全文
214 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
shijiang 2008-01-05
  • 打赏
  • 举报
回复
帮不上忙。。。
省事点用 fatjar打包试试吧。。。
chl0311 2008-01-04
  • 打赏
  • 举报
回复
估计和java打包差不多吧
onetudy 2008-01-04
  • 打赏
  • 举报
回复
嗯,多谢,我再看看。报错的地方就是因为路径的问题。非常感谢您的帮助!!
老紫竹 2008-01-04
  • 打赏
  • 举报
回复
放在jar里面,然后通过如下方式读取

URL = new URL(this.getClass().getClassLoader().getResource("/file/1234.gif"));

有了URL 剩下的,你自己搞吧!



原文在
http://www.java2000.net/viewthread.jsp?tid=160

也就这几行。
onetudy 2008-01-04
  • 打赏
  • 举报
回复
嗯,是有个property的配置文件。敢再麻烦一下,如果打包出来,而config文件夹想留在jar外面如何在程序里设置呢?
老紫竹 2008-01-04
  • 打赏
  • 举报
回复
ServerTerminal.java:60

查代码去吧! 第60行

记得,在jar里面读取资源,可不能简单的

File file = new File("1234.txt"); 这样可不行的。

onetudy 2008-01-04
  • 打赏
  • 举报
回复
TO java2000_net
不好意思,我以前用的是 javaw命令,那是没有反应的。
用java命令提示:
java.lang.NullPointerException
at server.ClassPathUtil.getClassPath(ClassPathUtil.java:7)
at server.ServerTerminal.<init>(ServerTerminal.java:60)
at server.ServerTerminal.main(ServerTerminal.java:410)
这意思是不是因为ClassPath设置不对呢?
可调试的时候是正常的啊,另外ClassPath需要怎么舍呢?
老紫竹 2008-01-04
  • 打赏
  • 举报
回复
你在
server.ServerTerminal 的main的第一行,加上
System.out.println("I am here!");
看看吧! 呵呵!
如果命令行能出现,证明程序没有问题。

应该是缺少参数或配置文件,造成你得程序自己判断后,退出了!!
老紫竹 2008-01-04
  • 打赏
  • 举报
回复
缺少命令行参数吧!哈哈哈!!!
onetudy 2008-01-04
  • 打赏
  • 举报
回复
命令行运行也是没反应。 空了一行后就返回了。
onetudy 2008-01-04
  • 打赏
  • 举报
回复
manifest文件如上,本来我是用Eclipse直接导出的,jar目录下生成了一个lib子目录,保存了用到的上述文件中的包。 另外参照一些网上对SWT designer打包的经验,将swt-win32-3346.dll解压出来放到了jar目录下。
以前这样打包另一个程序时是没问题的。
老紫竹 2008-01-04
  • 打赏
  • 举报
回复
你到命令行去运行看看

java -jar myjar.jar


老紫竹 2008-01-04
  • 打赏
  • 举报
回复
你需要一个 META-INF/MANIFEST.MF 文件
请参考这2篇文章,


http://www.java2000.net/viewthread.jsp?tid=156

http://www.java2000.net/viewthread.jsp?tid=157
onetudy 2008-01-04
  • 打赏
  • 举报
回复
Manifest-Version: 1.0
Main-Class: server.ServerTerminal
Class-Path: ./lib/org.eclipse.core.runtime_3.3.100.v20070530.jar
./lib/org.eclipse.swt.win32.win32.x86_3.3.0.v3346.jar
./lib/org.eclipse.jface_3.3.0.I20070606-0010.jar
./lib/org.eclipse.equinox.common_3.3.0.v20070426.jar
./lib/jtds-1.2.2.jar
./lib/org.eclipse.core.commands_3.3.0.I20070605-0010.jar
./lib/org.eclipse.equinox.registry_3.3.0.v20070522.jar
./lib/org.eclipse.jface.text_3.3.0.v20070606-0010.jar
./lib/org.eclipse.osgi_3.3.0.v20070530.jar
./lib/org.eclipse.text_3.3.0.v20070606-0010.jar
./lib/org.eclipse.ui.forms_3.3.0.v20070511.jar
./lib/org.eclipse.ui.workbench_3.3.0.I20070608-1100.jar
healer_kx 2008-01-04
  • 打赏
  • 举报
回复
MANIFEST.MF文件写了嘛?

62,623

社区成员

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

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