Java类中的相对路径在执行期间不同/更改

时间:2017-06-10 13:00:10

标签: java sqlite

问题:两个类尝试使用相同的代码访问两个不同的(相对)路径。

步骤:

  1. 我运行sendAsJson:true
  2. 客户端将C:\ Users \ user \ git \ x \ y打印为相对路径(正确的路径)
  3. 该程序从Client.java
  4. 到达getSchemaStatements()
  5. SQLiteDB现在打印SQLiteDB.java,而在客户端设置为C:/WINDOWS/System32
  6. 班级C:\Users\<user>\git\x\y

    client.java

    班级public class Client { @SuppressWarnings("unused") private static TUI tui; public static final String RELATIVE_PATH = Paths.get("").toAbsolutePath().toString(); public static void main(String[] args) { System.out.println(RELATIVE_PATH); // Prints C:\Users\user\git\x\y // The above path is the correct path tui = new TUI(); }

    SQLiteDB.java

    我在这里遗漏了什么吗?感谢您的帮助!

    编辑:Stacktrace:

    public class SQLiteDB {
    public static final String RELATIVE_PATH = Paths.get("").toAbsolutePath().toString();
    
    public static void initializeDB() {
        //<snip>
    }
    
    private static String getSchemaStatements() {
        List<String> lines = null;
        try {
            System.out.println(RELATIVE_PATH); // Prints C:/WINDOWS/System32
            System.out.println(Client.RELATIVE_PATH); // Now suddenly also prints C:/WINDOWS/System32 while it was set as C:\Users\user\git\x\y
            lines = Files.readAllLines(schema);
        } catch (IOException e) {
            e.printStackTrace();
        }
        //<snip>
    }
    

0 个答案:

没有答案