java工程打包jar,遇到的问题(gui,swt,swing...)

以一次写文章有点激动哈,如有写错的地方悄悄告诉我哦。

回归正题,最近工作需要做一个java的小引用(swt画窗口)。引用做完后需要打包成jar,这里遇到了一大堆坑。下面一一列举

 

1打包工程:右键需要打包的工程-->export选择JAR file 点击next

选择好保持路径后可以直接点击Finish(注:MANIFEST.MF文件会在打包的时候自动生成)

2修改MANIFEST.MF文件:

2.1:修改程序入口和引用的第三方jar包

这里需要注意:Manifest-Version、Main-Class、Class-Path后需要添加一个空格

Class-Path换行后需要两个空格,否则会报:Error: A JNI error has occurred, please check your installation and try again     的提示

在最后面需要换行。否则会报:Error: Invalid or corrupt jarfile ***.jar的提示

Main-Class程序入口没写会提示:错误: 找不到或无法加载主类。

Main-Class程序入口写错会提示:找不到主类:*****。

下面附MANIFEST.MF文件内容

Manifest-Version: 1.0
Main-Class: ****
Class-Path: libs/org.eclipse.swt.win32.win32.x86_64_3.110.0.v20190305-0602.jar
  libs/org.eclipse.core.commands_3.9.300.v20190215-1957.jar
  libs/org.eclipse.core.runtime_3.15.200.v20190301-1641.jar
  libs/org.eclipse.equinox.common_3.10.300.v20190218-2100.jar
  libs/org.eclipse.equinox.registry_3.8.300.v20190218-2100.jar
  libs/org.eclipse.jface_3.15.100.v20190222-1334.jar
  libs/org.eclipse.jface.text_3.15.100.v20190305-0811.jar
  libs/org.eclipse.osgi_3.13.300.v20190218-1622.jar
  libs/org.eclipse.text_3.8.100.v20190306-1823.jar
  libs/org.eclipse.ui.forms_3.7.500.v20190216-1545.jar
  libs/org.eclipse.ui.workbench_3.113.0.v20190219-1432.jar
  libs/com.ibm.icu_63.1.0.v20181030-1705.jar
  libs/decaf-annotations.jar
 

这时候有人会去cmd执行:java - jar ***.jar还是报错无法找到第三方jar(Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Composite)

如果程序有问题执行会报:Error: Invalid or corrupt jarfile ***.jar

下面是本人打包jar的文件夹

有人会发现libs这个目录:没错里面的libs就是相对要执行jar的相对路径(注意:不能用绝对路径。网上说的。本人还没没去验证QAQ)

复制好引用到的第三方jar双击要执行的jar就可以正常运行啦。

由于jar的运行必须基于jdk环境,但是应用可能是给别人用的。可以动态配置下环境变量。

新建***.bat复制一下脚本(jdk版本自己选择)然后双击就可以在没安装jdk的电脑使用啦。

set SRC=%cd%
set JAVA_HOME=%SRC%\jdk1.8.0_181
set PATH=%JAVA_HOME%\bin;%PATH%
set CLASSPATH=.

java -jar ppj.jar

 

如有写错,请指出,谢谢啦。
 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值