首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何运行JShell文件?

如何运行JShell文件?
EN

Stack Overflow用户
提问于 2017-09-26 12:25:09
回答 7查看 7.7K关注 0票数 13

我想使用JShell运行整个文件,如下所示:

代码语言:javascript
复制
$ jshell my-jshell-skript.java

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

或者是像这样的可执行文件:

代码语言:javascript
复制
#!/usr/bin/jshell
40 + 2

这是现在的可能吗,还是我还必须采用以前的方式,而不是Java-Main-Class呢?

编辑1: Windows-问题

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

代码语言:javascript
复制
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解决方案-问题

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

代码语言:javascript
复制
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>
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2017-09-26 14:27:08

JShell并不意味着直接运行一个Java类。如果您想要运行一个java类,仍然需要以旧的方式运行它-- java <your-class-name>

文档

JShell工具(JShell,JShell)是学习Java编程语言和原型Java代码的交互式工具。JShell是一个读-评估-打印循环(REPL),它在输入声明、语句和表达式时对它们进行评估,并立即显示结果。

根据这句话,JShell是用来运行或尝试单个Java语句的。按照传统的java方式,您必须编写完整的Java程序,然后才能运行它并查看结果。但是JShell允许您尝试Java语句,而无需构建完整的独立java应用程序。

因此,对您的问题的简短回答是,不能调用独立的java应用程序,比如jshell my-jshell-skript.java。但是,您可以调用包含单个JShell命令或Java语句的脚本文件。因此,如果您从Java程序中复制所有语句并将它们粘贴到JShell脚本中,则可以运行以下脚本:

% jshell my-jshell-skript.jsh

但这与运行独立的java应用程序并不完全相同。

票数 1
EN

Stack Overflow用户

发布于 2017-09-26 13:09:37

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

代码语言:javascript
复制
jshell /path/to/some.jsh

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

票数 6
EN

Stack Overflow用户

发布于 2017-09-26 12:29:22

您可以将字符串传输到JShell:

代码语言:javascript
复制
echo 1 + 2 | jshell

示例:

代码语言:javascript
复制
:/# echo 1 + 2 | jshell
|  Welcome to JShell -- Version 9
|  For an introduction type: /help intro

jshell> 1 + 2
$1 ==> 3

:/#

或者,从文件中:

代码语言:javascript
复制
cat myfile | jshell

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46426526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档