use*_*370 9 java java-9 jshell
我想用JShell运行整个文件,如:
$ jshell my-jshell-skript.java
Run Code Online (Sandbox Code Playgroud)
例如,在哪里我的内容my-jshell-skript.java是40 + 2;.
或者可选的可执行文件:
#!/usr/bin/jshell
40 + 2
Run Code Online (Sandbox Code Playgroud)
现在这可能吗?还是我仍然需要采用Java-Main-Class的旧方法?
在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>
Run Code Online (Sandbox Code Playgroud)
JShell开始完全忽略我的文件.这是一个错误吗?
事实证明这是我的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>
Run Code Online (Sandbox Code Playgroud)
您可以创建一个以这些语句命名的Jshell脚本文件some.jsh,并在命令提示符下运行jshell,执行它:
jshell /path/to/some.jsh
Run Code Online (Sandbox Code Playgroud)
在MacOSX上,我会做类似的事情:
JShell并不意味着直接运行 Java 类。如果你想运行一个java类,你仍然需要用老方法—— java <your-class-name>.
从文档中,
Java Shell 工具 (JShell) 是一个用于学习 Java 编程语言和构建 Java 代码原型的交互式工具。JShell 是一个读取-求值-打印循环 (REPL),它在输入声明、语句和表达式时对其求值并立即显示结果。
根据此引述,JShell 用于运行或尝试单个 Java 语句。在传统的java方式中,您必须编写一个完整的Java程序,然后才能运行它并查看结果。但是 JShell 允许您尝试 Java 语句,而无需构建完整的独立 java 应用程序。
所以对你的问题的简短回答是,不,你不能调用像jshell my-jshell-skript.java. 但是,您可以调用包含单独的 JShell 命令或 Java 语句的脚本文件。因此,如果您从 Java 程序中复制所有语句并将它们粘贴到 JShell 脚本中,则可以运行该脚本,如下所示:
% jshell my-jshell-skript.jsh
但这与运行独立的 java 应用程序并不完全相同。
| 归档时间: |
|
| 查看次数: |
2723 次 |
| 最近记录: |