欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

简单的jar包(含有依赖jar)

程序员文章站 2022-05-04 18:17:37
...

背景:

每每有测试询问批次状态或者流水结果,就得一遍又一遍的打开PL/SQL,写一个又一个重复的sql,将需要查询的流水放到固定的where条件中。
所以就想直接搞个jar出来,让测试自己输入环境和流水,就可以自己简单查询。由此。

动手

首先是动手写了一个基本的类,参数三个(环境,需要查询的sql的ID,流水号(批次号))
以下记录部分代码:
Connection connection = null;
Statement nstm = null;        
ResultSet rs = null;
Class.forName(driver);
connection = DriverManager.getConnection(url, user, password);// 获取连接
connection.setAutoCommit(false);            
nstm = conn.createStatement();                
rs = nstm.executeQuery(sql);                             
conn.commit();

根据ID获取sql语句,拼接流水号,就可以查询到结果了!

问题出现

以上步骤其实很简单也很顺利,但是当我满怀欣喜将这个进行打包。
先创建了一个文件:MANIFEST.MF
javac -encoding utf8 .\Select.java
jar cvfm Select.jar Manifest.MF Select.class
java -jar Select.jar
理论上上述执行完,会提示没有主清单属性,原因是MANIFEST.MF文件缺少一个主类
在MANIFEST.MF中添加一句:
Main-class: Select
即可。
再运行发现报错,NoClassFound,原来是缺少ojdbc.jar
后来就百度了好久也没有专门的  在打好的jar包中,将依赖jar包也添加至该jar包中。

问题处理

第二天我就打算直接简单点,放到了eclipse中去打包,后面将依赖包也导入进去,发现是可以直接执行的,也能查询到我想要的结果。
又到了打包的一步了......
用eclipse打包发现,
Class-Path: . SxS_lib/ojdbc6.jar
Main-Class:  SxSelect
!!就是差了这一句
**Class-Path: . SxS_lib/ojdbc6.jar**
然后就可以肆意妄为的添加sql以及查询嘞!