Jar后:FileInputStream、配置文件 不能读入

gl2004 2007-08-19 11:34:05
代码:
Connection conn = null;
Properties connInfo = new Properties();

// System.out.println(System.getProperty("user.dir")+"\\ConnInfo.Properties");

try {
connInfo.load(new FileInputStream(System.getProperty("user.dir")+ "\\ConnInfo.Properties"));
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url = connInfo.getProperty("url");
String user = connInfo.getProperty("user");
String pass = connInfo.getProperty("pass");
conn = DriverManager.getConnection(url, user, pass);
} catch (InstantiationException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO 自动生成 catch 块
e.printStackT …

百思不得其解:按说打包后Jar和ConnInfo.Properties在同一目录下应该可以读到吧,总是"No Driver"…,
...全文
398 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gl2004 2007-08-21
  • 打赏
  • 举报
回复
问题解决,MANIFEST.MF的问题:
添加 Class-Path: . ojdbc14.jar substance.jar swingx.jar
依然感谢两位。
codeartisan 2007-08-20
  • 打赏
  • 举报
回复
/**
* @(#)JDBCTool.java 1.0 2007-07-30
*
*
* */

package com.sqxy.tools;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.FileReader;
import java.net.URLDecoder;
import java.util.Properties;


public class JDBCTool{
private static Connection connection;

public static Connection getConnection(){
Properties properties = new Properties();

try {

String path = JDBCTool.class
.getProtectionDomain().getCodeSource()
.getLocation().getPath();

path = URLDecoder.decode(path,"utf-8");

properties.load
(new FileReader(path.substring(0,path.lastIndexOf('/')+1) +
"jdbc-config.properties"));

String driver = properties.getProperty("jdbc.driver");
String url = properties.getProperty("jdbc.url") ;
String user = properties.getProperty("jdbc.user");
String password = properties.getProperty("jdbc.password");

Class.forName(driver);
connection = DriverManager.getConnection(url,user,password);
}
catch (FileNotFoundException ex){
System.out.println("------[警告:找不到配置文件jdbc-config.properties]------\n" +
"请将jdbc-config.properties与本工具包放在同一目录下\n" +
"若配置文件已丢失,您可以重新编写。配置文件格式为:\n" +
"jdbc.driver=[数据库驱动类名]\n" +
"jdbc.url=[数据库URL]\n" +
"jdbc.user=[数据库登录用户名]\n" +
"jdbc.password=[数据库登录密码]");
}
catch (IOException ex){
ex.printStackTrace();
}
catch (ClassNotFoundException ex){
System.out.println("------[找不到JDBC驱动类]------");
}
catch (SQLException ex){
ex.printStackTrace();
}

return connection;
}

public static void close(){
try{
connection.close();
}
catch (SQLException ex){
ex.printStackTrace();
}
catch (NullPointerException ex){
System.out.println("连接不存在或者已经被关闭!");
}
}

public static void main(String[] args)
{
getConnection();
close();
}
}
codeartisan 2007-08-20
  • 打赏
  • 举报
回复
哈哈,我前几天也做过这个。我去找找代码。
zdjray 2007-08-20
  • 打赏
  • 举报
回复
不一定
要看具体配置

你尝试着更换一下文件名前面的相对目录
一个个文件夹加上去
文件放在与.class相同的目录下
gl2004 2007-08-19
  • 打赏
  • 举报
回复
//直接输入绝对路径也不行?
new FileInputStream("E:\\ConnInfo.Properties")
//在Eclipse中没问题,一打包就出错。

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧