0

我一直将我的钱包存储在项目的资源文件夹中,并且可以在 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 文件旁边并使用相对文件路径访问它来解决此问题,但无论如何要解决此问题,以便我可以将钱包保留在 jar 中?

4

2 回答 2

2

JDBC 只能接受可由new File(path). 所以这里以“file:...”开头的路径是无效的。

于 2020-03-17T19:31:20.180 回答
0

TNS_ADMIN 属性用于捕获 tnsnames.ora 文件的绝对路径。所以,尽量使用绝对路径。另外,请注意 windows 和 linux 的文件分隔符。使用DataSourceSample.java作为参考。

于 2020-03-29T08:26:52.567 回答