最近需要进行开发window工具,功能是点击后执行一个网络请求,同步本地数据到服务器中。
为此查阅资料,遇到不少坑,囧囧囧囧 ,作为android开发已经遗忘了eclipse的使用了。因此做个笔记,避免以后需要时又踩坑。
eclipse下导出jar包
-
步骤1 右击项目点击Export。
image.png -
选择java-JAR file - Next
image.png -
取出右侧.classpath和.project的勾选,并且点击Browse,选择输出目录及输出文件名,然后点击Next
image.png
4.直接Next
-
点击Browse选择main方法所属类,(项目里没有限制你多少个main,但可执行文件只有一个口,所以这里是确认程序入口)然后点击finish即完成导出jar。(可能会弹出警告,一般可以忽略,除非写的代码真的有问题)
image.png
关键地方,如何生成可执行文件呢?
-
直接将生成的jar解压,解压后如右图,其中bean和test文件可以直接删除。
打开META-INF文件夹下的MANIFEST.MF文件,可以看到如图内容,
2.1 其中Main-Class指明了包含main函数所在的位置。test.FirstTest的格式为包名.类名。
2.2 可以看到下面是空了2行的。(所以MANIFEST.MF的其中一个是,保持内容下面空2行)
2.3 指定第三方库所在位置在Main-Class下新增一行。通过Class-Path指明第三方库路径。
比如 Class-Path: libs/gson-2.8.5.jar。写完后保存MANIFEST.MF。
2.4 7z压缩工具允许直接右键打开压缩包,然后打开META-INF文件夹,将修改后的MANIFEST.MF文件直接拖进打开的META-INF文件夹,选择覆盖,然后关闭7z压缩工具即可。这时候
写个执行脚本
新建managertools.bat(文件名随意,但需要.bat结尾,也可以.sh结尾),写入如下内容后保存。
java -Xmx1G -Xms1G -jar ManagerTools.jar
pause点击managertools.bat即可执行。
最终所需的文件如下
- libs 是所需引入的第三库(必须)
- apps.json 这个仅仅是个人代码所需,可以忽略
- managerTools.jar 这个是源码(必须)
-
start.bat 这个是执行脚本(必须)
image.png
注意 :当时遇到的坑就是,libs我直接删掉了,毕竟managerTools.jar里面是包含的。但事实是,他找的是当前目录下的libs下的库。