eclipse中怎样将项目打包成jar

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了eclipse中怎样将项目打包成jar相关的知识,希望对你有一定的参考价值。

由于他的源代码中使用了不少第三方的lib,因此有必要将lib也一并打包进去。他用Eclipse的Export功能直接打包到.jar文件,第三方lib是打包进来了,可是使用的时候还是提示找不到相应的包。
其实,为了自己的便利将别人发布的lib打包进自己project的包中不是一种合适的做法。这样做之前务必要检查一下对方的license,但不管是不是将对方的lib包括进来,既然自己的代码用到了,为了让它们正常工作,指明哪些包在那是必不可少的。师弟其实需要一个MANIFEST.MF文件,利用Eclipse生成jar文件的时候,请不要让其自动生成MANIFEST.MF,而是应当由你自己写好一个MANIFEST.MF,然后告诉 Eclipse:请使用这个文件。想了解细节,请阅读SUN的这篇规范(VIA),或者是IBM网站上的这篇JAR文件揭秘,偶这里就不多写了。
另外,Eclipse其实还有一个输出到可执行jar的功能,该功能能够帮你编写合适的MANIFEST.MF文件,帮你将你引用的第三方lib一并打包(注意license哦)。
第一:普通类导出jar包,我说的普通类就是指此类包含main方法,并且没有用到别的jar包。
1.在eclipse中选择你要导出的类或者package,右击,选择Export子选项;
2.在弹出的对话框中,选择java文件---选择JAR file,单击next;
3.在JAR file后面的文本框中选择你要生成的jar包的位置以及名字,注意在Export generated class files and resources和Export java source files and resources前面打上勾,单击next;
4.单击两次next按钮,到达JAR Manifest Specification。注意在最底下的Main class后面的文本框中选择你的jar包的入口类。单击Finish,完成。
你可以在dos环境下,进入你的jar所在的目录,运行 java -jar 名字.jar,检测运行是否正确。
第二、你所要导出的类里边用到了别的jar包。比如说你写的类连接了数据库,用到数据库驱动包oracl.jar.。
1.先把你要导出的类按照上面的步骤导出形成jar包,比如叫test.jar
2.新建一个文件夹main,比如在D盘根目录下;
3.把test.jar和oracl.jar拷贝到main文件下,右击test.jar,解压到当前文件夹。把META-INF\MANIFEST.MF剪切到另外一个地方 (比如是桌面!) ;
4.右击oracl.jar,解压到当前文件夹。
5.在dos环境下,进入到D盘的main文件夹下,执行 jar cvfm new.jar meta-inf/manifest.mf .,不要忘了最后面的点。
6.用压缩工具打开你新生成的new.jar,用你放在桌面的META-INF\MANIFEST.MF覆盖new.jar原有。
你可以在dos环境下,进入你的jar所在的目录,运行 java -jar 名字.jar,检测运行是否正确。
关于 MANIFEST.MF 写法.
例如我们打包的jar为 Test.jar
Manifest-Version: 1.0
Main-Class: windows.VideoWindow
Class-Path: lib\org.eclipse.swt_3.3.0.v3346.jar lib\org.eclipse.swt.win32.win32.x86_3.3.0.v3346.jar
上面为打包为jar中的包说明文件. 下面这个报错一直出现.
could not find main class. Program will exit
这个错误提示其实不是没有发现main class. 而是jar如果有错误执行不了,就会出现这个错误. 打包完成后, 要先运行 cmd -> java -jar your.jar 确认没有问题即可执行jar. 使用-jar参数后, 系统的Classpath 变量不再起作用. 虚拟机将去MANIFEST.MF中的Class-Path 下找相关的包.
然后才能成功的从: windows.VideoWindow 的main方法进入. 否则没有相关连接包,则会提示找不到main class. 而大家可能还迷糊的找不到北. 明明有main class吗.
如果这个写的不对. 则就会一直报错.
看看上面这个Class-Path: 后面的写法. 空格分开. 绝对不能有分号.切记.
最后必须有换行. 这个也是要注意的. 否则依然提示没有mainclass.
不要因为这个小事情耽误了时间. 其中 lib/ 表示这个jar必须在打包Test.jar所在目录的一个lib子目录中.
运行jar需要命令: java -jar Test.jar
双击也可以, 则使用 javaw 打开.
关于java -classpath a.jar;b.jar; class test.Test 执行时. a.jar;b.jar; 后面都必须有分号. 否则报错. 不要指望不写classpath让系统自己找. 这不是在eclipse里面.必须写上你要使用的类. 否则总会提示您编译出错.
参考技术A 你要导出什么项目或者文件,就点击哪个右键,选择导出export,出现一个窗口,选择java,然后再选择导出什么形式,有jar和doc文件,看你自己的需求本回答被提问者采纳 参考技术B

  方法如下:

    选中项目

    然后右击弹出选项列表

    依次选择Export---Java---jar file---next---browser(选择存放路径)---next---next---browser---finish

eclipse将项目打包成jar在linux中运行

最近因为项目需要,做了几个外挂程序做数据传输,涉及到项目打包操作,在此记录一下打包步骤和其中出现的问题。

1.首先右键项目文件夹,点击export,弹出如下选择框,在其中输入jar搜索,并选择JAR flie点击next。

技术图片

2.勾选要打包的文件夹,这里只要勾选需要编译的java文件就可以了,下面的JAR file为打包后的保存路径和jar名称,选择好后点击next。

技术图片

3.如下图,点击next。

技术图片

4.如下图,Main class为项目入口路径,点击后面的按钮可以选择项目入口路径,选择好后点击finish即可完成打包。

技术图片

在打包好后有几个问题需要注意:

1.MANIFEST.MF文件需要根据自己的项目需要进行编写替换,MANIFEST.MF文件的修改需要严格遵守书写规范,首行为Manifest-Version: 1.0   第二行为Class-Path: xxx.jar(依赖的jar)  第三行为Main-Class: 项目入口路径 ,每个冒号后面需要有一个空格,每行结束不能有空格,Main-Class: 项目入口路径 后面需要打两个换行,如果依赖多个jar,则书写完每个jar后空一格写下一个,每行不能超过72个字符,如果每行写一个jar,则每行开始空两格。
技术图片

 

技术图片

2. 使用eclipse将项目打包后,项目中实际调取的依赖和文件等路径一般需要和项目的jar存放到同一级目录,否则会出现ClassNotFound等异常,放在同一级目录也方便后面根据需求修改配置文件。

3.编译好的jar可以用java -jar xxx.jar运行,这种运行方式会在命令行或linux服务器上显示启动和项目中的打印信息,当使用Ctrl+C退出时,jar的运行也会终止。

一般使用nohup命令运行项目:nohup java -jar xxx.jar >/dev/null &

这种方式运行jar在使用Ctrl+C退出时,jar的运行不会被终止,同时命令行或linux服务器不会显示启动和项目中的打印信息,nohup.out文件也不会有输入信息,此时如果想要查看项目运行信息,可以使用log4j输出日志文件进行查看。
摘自:https://blog.csdn.net/qq_36173194/article/details/82842531

以上是关于eclipse中怎样将项目打包成jar的主要内容,如果未能解决你的问题,请参考以下文章

eclipse怎么将java文件打包成jar

eclipse将项目打包成jar在linux中运行

怎样将java源代码打包成可执行jar文件或exe文件

如何将多个Java源文件打包成jar包

SpringBoot将项目打包成jar包

Eclipse中JAVA项目的打包