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

Java jshell命令“/open”是否可以相对于包含脚本的文件夹而不是工作目录工作?,java,java-9,jshell,Java,Java 9,Jshell,我在同一个文件夹/path/folder中有两个jshell脚本script.jsh和commons.jsh script.jsh: /open commons.jsh System.out.println("commons.jsh loaded") commons.jsh: /open commons.jsh System.out.println("commons.jsh loaded") 如果我在/path/folder中,我可以运行jshell script.jsh,它运行得很好

我在同一个文件夹
/path/folder
中有两个jshell脚本script.jsh和commons.jsh

script.jsh

/open commons.jsh
System.out.println("commons.jsh loaded")
commons.jsh

/open commons.jsh
System.out.println("commons.jsh loaded")
  • 如果我在
    /path/folder
    中,我可以运行
    jshell script.jsh
    ,它运行得很好
  • 如果我在
    /path/folder/subfolder
    中并且运行
    jshell../script.jsh
    ,它将失败,因为找不到“/open”的
    文件“commons.jsh”
    
有什么解决办法吗?换句话说,jshell命令
/open
是否可以相对于包含脚本的文件夹而不是工作目录工作

对于bash,这里也提出了类似的问题:

Edit1:使问题更精确


Edit2:这是我在写这个问题时正在编写的真正的jshell脚本,这里提供的第一个脚本打开了第二个脚本,其中包含一个helper方法

好的,我已经研究这个脚本很久了

我知道的唯一方法就是添加“commons.jsh”文件的完整路径。
它是有效的。

我们仔细考虑了一下这个问题,并将其限制在这个评论中。总之,用例可以归结为交互式Shell的需要。使用要从Y位置执行的X脚本的特定位置的主要区别。不否认这样的事实,即用户输入可以得到支持,但需要对其进行评估。不过,可能有效的方法是使用
.sh
脚本eq包装
.jsh
。不完全是这样,完整路径不是相对的,但至少这回答了问题。