Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 执行JAR的bash脚本的位置_Java_Bash - Fatal编程技术网

Java 执行JAR的bash脚本的位置

Java 执行JAR的bash脚本的位置,java,bash,Java,Bash,我有一个bash脚本来执行我的JAR。我希望JAR(或java代码)知道执行它的脚本的位置。有哪些可能的解决方案 您可以将此信息发送到java程序。在bash脚本中,您可以获得bash脚本的目录: DIR="$(pwd)/$(dirname ${BASH_SOURCE[0]})" java -jar foo.jar $DIR 在java代码中检索它: public static void main(String[] args) { try { String path = args

我有一个bash脚本来执行我的JAR。我希望JAR(或java代码)知道执行它的脚本的位置。有哪些可能的解决方案

您可以将此信息发送到java程序。在bash脚本中,您可以获得bash脚本的目录:

DIR="$(pwd)/$(dirname ${BASH_SOURCE[0]})"
java -jar foo.jar $DIR
在java代码中检索它:

public static void main(String[] args) {
  try {
     String path = args[0];
  }
  catch (Exception e){
    System.out.println("error");
  }
}

pwd
给出了当前的工作目录,它不一定是脚本的位置。你是对的,但是
pwd
误导了我,为什么你把它放在那里(不提所有的引用)?我只需使用
DIR=“$(dirname${BASH_SOURCE[0]})”
就可以获得正确的目录,因为我想获得完整的路径,而不是相对于运行脚本的位置。我的答案是否提供了解决问题所需的信息?