jshell命令`/ open`可以相对于包含脚本的文件夹而不是工作目录吗?

问题描述:

我有两个jshell脚本script.jshcommons.jsh在同一个文件夹/path/folderjshell命令`/ open`可以相对于包含脚本的文件夹而不是工作目录吗?

script.jsh

/open commons.jsh 

commons.jsh

System.out.println("commons.jsh loaded") 
  • 如果我在/path/folder,我可以运行jshell script.jsh和它运作良好
  • 如果我在/path/folder/subfolder,我跑jshell ../script.jsh,它与File 'commons.jsh' for '/open' is not found失败。

有没有解决方法?换句话说,jshell命令/open可以相对于包含脚本的文件夹而不是工作目录吗?

类似的问题在这里问的bash:Bash: How _best_ to include other scripts?

EDIT1:使问题更加精确

EDIT2:这里是我工作的真正jshell脚本当写这个问题时,第一个脚本https://framagit.org/Gwendal/helpful-scripts/blob/3e8118970a6a412dfe0f199e93545745d890243f/jshell/dia2pdf.jsh可以打开第二个脚本,它包含一个辅助方法https://framagit.org/Gwendal/helpful-scripts/blob/3e8118970a6a412dfe0f199e93545745d890243f/jshell/commons.jsh

+0

想一想这一段时间,并将其限制于此评论。恕我直言,用例归结为交互式Shell [(!= REPL)]的需求(https://www.johndcook.com/blog/2012/06/26/shell-repl/)。使用X脚本的特定位置从Y位置执行的主要区别。不否认这样的事实,即这种用户输入可以被支持,但是需要对[REPL来提供]进行评估(https://softwareengineering.stackexchange.com/questions/168285/difference-between-a-repl-and -interactive - 壳)。然而,可能会发生什么工作是使用'.sh'脚本包装'.jsh'。 – nullpointer

好吧,我一直在寻找到这一个相当长的一段时间......

而且我知道的唯一途径是刚刚加入完整路径“commons.jsh” -file的 。 它的工作原理。

+0

不完全,完整的路径不是相对的,但至少这回答了这个问题。 – Oleg