如何在标准Maven项目中指定相对文件路径

时间:2016-03-14 20:31:43

标签: java maven

My Maven项目需要将数据加载到数据库,import.sql包含以下内容:

LOAD DATA LOCAL INFILE 
`'/home/jack/ubuntu/bword/src/main/resources/Term.txt' INTO TABLE Term FIELDS TERMINATED BY '\t'  LINES TERMINATED BY '\n' (id,name);`

此处使用的路径是我机器上的绝对路径。如何指定相对路径以使其工作?我试过这些:

/bword/src/main/resources/Term.txt
../bword/src/main/resources/Term.txt
../bword/src/main/resources/Term.txt
../src/main/resources/Term.txt

这些都不起作用。该文件位于src/main/resources,Maven目录中的默认目录。

我正在使用JBoss和hibernate,JPA。

1 个答案:

答案 0 :(得分:0)

恕我直言,你不能这样做。

您的应用程序是Web应用程序(我看一下聊天)。 Maven可以将import.sqlTerm.txt打包到应用程序中。这两个文件在类路径中都可见。 Hibernate扫描类路径,找到import.sql并执行它。

但是当import.sql继续时,命令

LOAD DATA LOCAL INFILE 'file_name' ...

已执行。 'file_name'已针对当前工作目录解决。

  1. 文件系统中Term.txt是否可见?我不这么认为。
  2. 你的应用程序是否控制JBoss进程的当前目录?否
  3. 摘要:

    1. Term.txt在JBoss文件系统
    2. 上不可见
    3. LOAD DATA LOCAL INFILE需要JBoss文件系统上的文件