In this quick article, you'll learn how to create a symbolic link as well as a hard link in Java.

A symbolic or soft link is a just link to the original file, whereas a hard link is a mirror copy of the original file. If the original file is removed, the soft link has no value, because it points to a non-existent file. In case of a hard link, if you delete the original file, it is still usable.

To create a symbolic link in Java 7+, you can use Files.createSymbolicLink() from Java NIO API. This method takes two parameters: the path of the symbolic link to create and the target of the symbolic link. Here is an example

try {
    // symbolic path
    Path symbolic = Paths.get("symbolic_dir");

    // target path
    Path target = Paths.get("dir");

    // create symobolic link
    Files.createSymbolicLink(symbolic, target);

} catch (IOException ex) {
    ex.printStackTrace();
}

To create a hard link to an existing file, you can use Files.createLink() that also takes two arguments: the link to create and a path to an existing file. Here is an example:

try {
    // symbolic path
    Path hardLink = Paths.get("hard_file.txt");

    // target path
    Path target = Paths.get("file.txt");

    // create hard link
    Files.createLink(hardLink, target);

} catch (IOException ex) {
    ex.printStackTrace();
}

Further Reading

You may be interested in other Java I/O articles:

✌️ Like this article? Follow @attacomsian on Twitter. You can also follow me on LinkedIn and DEV. Buy me a coffee (cost $3)

Need help to start a new Spring Boot or MEAN stack project? I am available for contract work. Hire me to accomplish your business goals with engineering and design. Let’s talk about your project: hi@attacomsian.com.