在项目中存储JDBC Oracle Wallet

我一直将我的钱包存储在项目的资源文件夹中,并且能够使用下面的字符串在eclipse中很好地访问它

final static String DB_URL = "jdbc:oracle:thin:@db_high?TNS_ADMIN="
    + (Database.class.getclassLoader().getResource("Wallet_DB")
        .getPath().replaceFirst("/",""));

但是,当我将其编译为jar并从命令行运行它时,出现以下错误:

Exception in thread "main" java.nio.file.InvalidPathException: Illegal
char <:> at index 4:
file:C:/Users/Me/Documents/test.jar!/Wallet_DB\ojdbc.properties

我知道我可以通过以下方式解决此问题:仅将钱包移到我的jar文件旁边,在项目外部,并使用相对文件路径访问它,但是无论如何都可以解决此问题,因此我可以将钱包放在里面罐子?

A19900919woaijisuanj 回答:在项目中存储JDBC Oracle Wallet

JDBC仅接受new File(path)可访问的路径。因此,此处以“ file:...”开头的路径无效。

,

TNS_ADMIN属性用于捕获tnsnames.ora文件的绝对路径。因此,请尝试使用绝对路径。另外,请注意Windows和Linux的文件分隔符。使用DataSourceSample.java作为参考。

本文链接:https://www.f2er.com/2630608.html

大家都在问