将java project 打包成跨平台的jar包

时间:2022-08-31 09:39:57

一、

1.每个eclipse中都有一个默认的jre环境,如果本机中已经装了jdk,那么通过projec上的properties的add library中添加你本机的jdk的jre。

2.如果本机中打包成jar的java project的library是eclipse中自带的或者是自己设置的,然后用另一个eclipse版本编译的时候,可以通过手动的更改library来替换jrm。

二、

正在做数据分析方面的实习工作,由于需要java做一个Teradata和Greenplum的接口,中间用到了java连接TD,R语言连接Gp。所以需要做一个用jdbc连接了TD的jar包。

在eclipse上将java project打包成jar是可以自动搞定的,注意的是:

1、lib文件夹:依赖的外部jar包,一定要新建一个lib包,然后将这些jar包放进去,并在java project中引用它,而不是引用本机中其他地方,在打包的时候,会将其一起打包,并且在设计jar包中的manifes.mf文件的时候,一定要指明它的引用路径。

2、conf文件夹:新建一个conf文件夹,将配置文件写进去,比如我们这个项目的配置文件名为,main.properties。内容为:

CONN_STRING=jdbc:teradata://153.65.85.91/mls_data
DRIVER_CLASS=com.teradata.jdbc.TeraDriver
DB_ACCOUNT=mlsadmin
DB_PASSWORD=mlsadmin

这个就不用解析了,第一行是连接字符串,第二个是驱动名字,第三个是td数据库和登录名和密码。

本项目中的java高手学到了写conf文件,真的很讲究。

3、manifest.mf:如果java project中你有新建的外部conf或者引用了外部包的lib文件夹,需要在打包成jar的最后一步,也就是设计manifest.mf中将对应的路径写清楚,不然运行jar包时候,会找不到类的执行入口。manifest.mf文件定义如下所示:

Manifest-Version: 1.0

Main-Class: com.Task

Class-Path: lib/dom4j-1.6.1.jar lib/jaxen-1.1-beta-7.jar

 注意:

<1> manifest.mf文件最后一行必须是一个空行。

<2> lib/dom4j-1.6.1.jar和lib/jaxen-1.1-beta-7.jar之间用一个空格隔开。

<3>每个冒号后有一个空格。

其中,在这个项目中,我的jar包设置的manifest.mf文件为:

Manifest-Version: 1.0
Main-Class: com.teradata.mlp.MLPDamon
Class-Path: lib/tdgssconfig.jar lib/terajdbc4.jar


一定要记得,空格和空行的限制!!!!

这里有一个百度教程,很有用:http://jingyan.baidu.com/article/219f4bf7d0ef87de442d3820.html