【问题标题】:relative path instead of absolute path in javajava中的相对路径而不是绝对路径
【发布时间】:2016-11-23 12:20:51
【问题描述】:
public String[] return_login_config_array(String name, int index) {
    SPACE_CreateThroughExcel create = new SPACE_CreateThroughExcel();
    String[][] data = create.read(name);
    int columns = data[0].length;
    String[] login_var = new String[columns];
    for (int i = 1; i < columns; i++) {
        login_var[i] = data[index][i];
    }
    return login_var;
}

在调用这个函数时,我不得不提到整个路径C:/Users/Rachana/workspace/SPACEOM/WebContent/Data/login.xlsx

但我只想提及我正在工作的目录的相对路径。

函数路径C:/Users/Rachana/workspace/SPACEOM/src/com/srishti/space_om/SPACE_Functions.java

【问题讨论】:

  • create.read 方法中发生了什么?如果您需要相对路径(与您的工作目录相关),而不仅仅是指定相对路径,例如WebContent/Data/login.xlsx C:/Users/Rachana/workspace/SPACEOM 是您的工作目录。

标签: java path relative-path


【解决方案1】:

如果您的“login.xlsx”与 SPACE_Functions.java 类在同一个包中,否则您需要在它之前附加相对路径。

URL url = getClass().getResource("login.xlsx ");
File file = new File(url.getPath());

否则尝试将路径映射到 java 类

URL url = getClass().getResource("/<relative path>/login.xlsx ");
File file = new File(url.getPath());

如果您在 servlet 中需要它,请使用 getServletContext().getRealPath("/filepathInContext")

或使用 java.net.url

java.net.URL url = this.getClass().getClassLoader().getResource("web.xml");
String filePath = url .getFile();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-17
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多