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
,它将失败,因为找不到“/open”的jshell../script.jsh
文件“commons.jsh”李>
/open
是否可以相对于包含脚本的文件夹而不是工作目录工作
对于bash,这里也提出了类似的问题:
Edit1:使问题更精确
Edit2:这是我在写这个问题时正在编写的真正的jshell脚本,这里提供的第一个脚本打开了第二个脚本,其中包含一个helper方法好的,我已经研究这个脚本很久了 我知道的唯一方法就是添加“commons.jsh”文件的完整路径。
它是有效的。我们仔细考虑了一下这个问题,并将其限制在这个评论中。总之,用例可以归结为交互式Shell的需要。使用要从Y位置执行的X脚本的特定位置的主要区别。不否认这样的事实,即用户输入可以得到支持,但需要对其进行评估。不过,可能有效的方法是使用
.sh
脚本eq包装.jsh
。不完全是这样,完整路径不是相对的,但至少这回答了问题。