Java での相対パス

Mohammad Irfan 2023年10月12日
  1. Java でファイルを見つけるための相対パスを定義する
  2. Java で親ディレクトリの相対パスを定義する
  3. Java の現在のディレクトリで相対パスを定義する
  4. Java で ../../プレフィックスを使用して相対パスを定義する
Java での相対パス

このチュートリアルでは、Java で相対パスを定義する方法を紹介します。

相対パスは不完全なパス(ルートディレクトリがない)であり、現在のディレクトリパスと組み合わされてリソースファイルにアクセスします。相対パスは、ファイルシステムのルート要素で始まりません。

相対パスを使用して、現在のディレクトリまたは親ディレクトリ、あるいは同じ階層内のファイルを検索します。

相対パスを定義するには、現在のディレクトリパスを参照する ./、直接の親ディレクトリパスを参照する ../など、いくつかの方法があります。いくつかの例を見てみましょう。

Java でファイルを見つけるための相対パスを定義する

相対パスを使用して、現在の作業ディレクトリでファイルリソースを見つけることができます。以下の例を参照してください。

import java.io.File;
public class SimpleTesting {
  public static void main(String[] args) {
    String filePath = "files/record.txt";
    File file = new File(filePath);
    String path = file.getPath();
    System.out.println(path);
  }
}

出力:

files/record.txt

Java で親ディレクトリの相対パスを定義する

../プレフィックスとファイルパスを使用して、親ディレクトリ内のファイルを見つけることができます。これは、親ディレクトリ内のファイルにアクセスするための相対パスです。以下の例を参照してください。

import java.io.File;
public class SimpleTesting {
  public static void main(String[] args) {
    String filePath = "../files/record.txt";
    File file = new File(filePath);
    String path = file.getPath();
    System.out.println(path);
  }
}

出力:

../files/record.txt

Java の現在のディレクトリで相対パスを定義する

ファイルリソースが現在のディレクトリにある場合は、パスに ./プレフィックスを使用して相対ファイルパスを作成できます。以下の例を参照してください。

import java.io.File;
public class SimpleTesting {
  public static void main(String[] args) {
    String filePath = "./data-files/record.txt";
    File file = new File(filePath);
    String path = file.getPath();
    System.out.println(path);
  }
}

出力:

./data-files/record.txt

Java で ../../プレフィックスを使用して相対パスを定義する

ファイルがディレクトリ構造の上位 2 レベルにある場合は、ファイルパスに ../../プレフィックスを使用します。以下の例を参照してください。

import java.io.File;
public class SimpleTesting {
  public static void main(String[] args) {
    String filePath = "../../data-files/record.txt";
    File file = new File(filePath);
    String path = file.getPath();
    System.out.println(path);
    String absPath = file.getAbsolutePath();
    System.out.println(absPath);
  }
}

出力:

../../data-files/record.txt

関連記事 - Java Path

関連記事 - Java IO