如何运行JShell文件?编辑1:窗口问题编辑2:Windows问题的解决方案

2022-09-04 21:52:22

我想用JShell运行整个文件,就像:

$ jshell my-jshell-skript.java

例如,我的内容是 .my-jshell-skript.java40 + 2;

或者一个可执行文件,如:

#!/usr/bin/jshell
40 + 2

现在这有可能,还是我仍然必须采用旧的方式而不是Java-Main-Class?

编辑1:窗口问题

在Windows上,我仍然没有解决方案:

C:\JDKs\jdk9.0.0.0_x64\bin>type foo.jsh
1 + 1

C:\JDKs\jdk9.0.0.0_x64\bin>jshell.exe foo.jsh
|  Welcome to JShell -- Version 9
|  For an introduction type: /help intro

jshell> /exit
|  Goodbye

C:\JDKs\jdk9.0.0.0_x64\bin>

JShell开始完全忽略我的文件。这是一个错误吗?

编辑2:Windows问题的解决方案

原来这是我foo的内容。似乎只在“动态”中工作,而不是从文件中读取:1 + 1

C:\JDKs\jdk9.0.0.0_x64\bin>type foo.jsh
System.out.println("foo");

C:\JDKs\jdk9.0.0.0_x64\bin>jshell.exe foo.jsh
foo
|  Welcome to JShell -- Version 9
|  For an introduction type: /help intro

jshell> /exit
|  Goodbye

C:\JDKs\jdk9.0.0.0_x64\bin>

答案 1

您可以创建一个以这些语句命名的 Jshell 脚本文件,并在命令提示符下从运行的位置执行它,如下所示:-some.jshjshell

jshell /path/to/some.jsh

在MacOSX上,我会做这样的事情:

enter image description here


答案 2

你可以通过管道将字符串发送到 JShell:

echo 1 + 2 | jshell

例:

:/# echo 1 + 2 | jshell
|  Welcome to JShell -- Version 9
|  For an introduction type: /help intro

jshell> 1 + 2
$1 ==> 3

:/#

或者,从文件中:

cat myfile | jshell

其中包含行“1 + 2”。myfile


推荐