我正在尝试编写一个shell脚本来创建指定文件夹的war文件。将目标位置作为命令行参数获取不会导致任何问题。但是在运行时获取目标位置(作为相对路径)会引发下面提到的错误。
java.io.FileNotFoundException: ~/app/sss.war (No such file or directory)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
at java.io.FileOutputStream.<init>(FileOutputStream.java:110)
at sun.tools.jar.Main.run(Main.java:192)
at sun.tools.jar.Main.main(Main.java:1231)
我还包含了脚本
#!/bin/bash
read -p "Enter target location : " loc
jar -cf $loc/sss.war *
但是使用绝对路径可以正常工作。我只想知道为什么使用相对路径不起作用。