# How to create symbolic and hard links in Java

By Atta Ur Rehman Shah (https://attacomsian.com/about). Published Dec 14, 2019. Topics: Java.
Canonical URL: https://attacomsian.com/blog/java-create-symbolic-hard-links

> A short guide to learn how to create a symbolic link as well as a hard link in Java.

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

```java
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:

```java
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:

* [Reading and Writing Files in Java](https://attacomsian.com/blog/java-read-write-files)
* [How to Read and Write Text Files in Java](https://attacomsian.com/blog/java-read-write-text-files)
* [How to Read and Write Binary Files in Java](https://attacomsian.com/blog/java-read-write-binary-files)
* [Reading and Writing Files using Java NIO API](https://attacomsian.com/blog/java-read-write-files-nio-api)
* [How to read a file line by line in Java](https://attacomsian.com/blog/how-to-read-a-file-line-by-line-in-java)
