问题标签 [jshell]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 我可以将 jshell repl (java 9) 添加到 vscode 的终端面板吗?
vscode 新手,搜索什么也不返回。
我想将 jshell 添加到终端窗口。可能吗?
java - 在 JShell 中访问“父范围”
似乎,JShell
在另一个内部创建的对象JShell
无权访问父级的JShell
范围。例如:
是否有可能使父范围对孩子可见?
java - 抛出异常后,jshell 继续执行我的脚本。如何让它停止?
我尝试编写一些 jshell 脚本。当抛出异常时,jshell 仍然继续执行下一行。
如何让我的脚本表现得更像普通的 java 程序?
编辑:我只是像运行它一样jshell SCR.jsh
。
使用throw new Exception()
or1/0
不会阻止执行下一行。
该脚本包含如下语句:
我认为第二行是无法到达的。这就是我所期望的。但是异常被打印出来之后,foo
也被打印出来了。
java - 面向语句的方法与面向表达式的方法
我在阅读这篇关于 java9 的文章时遇到了这一行,其中指出Java 是面向语句的,而 REPL 是面向表达式的。
有人可以解释这两者之间的区别吗?
read-eval-print-loop - 在 Java 9 上,为什么 System.getenv() 的输出在 jshell 中不完整?
我正在使用 Windows 10 并运行 Oracle 昨天发布的 Java 9 版本。
如果我打开一个jshell并输入System.out.println(System.getenv())输出如预期的那样,如下面的屏幕截图的下部所示。
但是,如果我只是输入System.getenv(),则输出中间会丢失大量数据。请参阅下面屏幕截图的初始部分。这似乎是jshell的一个功能,因为在System.getenv()输出中省略号 (" ... ")下方的屏幕截图中(在带有手绘黄色边缘的第二个框中)与丢失的数据完全对应。
缺少环境变量CommonProgramFiles的结尾部分,环境变量SPRING_HOME的开头也是如此,还有其他几个环境变量,例如Path根本没有显示。
(出于隐私考虑,屏幕截图中的某些信息已被模糊处理。)
有没有其他人看到同样的事情(或没有),有没有人对jshell为什么这样做有建议?
java - 将包私有类导入 JShell
在 Java 9 发布后,我在玩 JShell,并尝试导入我制作的包。由于我正在为其编码的整个应用程序将包含在该包中,因此除了一个(我还没有编码)之外的每个类都是包私有的。我的类路径是正确的,但我仍然无法使用 JShell 包中声明的任何类型(它会引发“找不到符号”错误)。我是否需要将它们公开以便可以访问,或者有什么方法可以测试包私有类?这是我尝试过的确切代码。
我当前的目录是
我的课程路径是
并且包目录(用于字节码)是
CollatzSequence
是一个包私有类,包含在collatz
.
java - 有没有办法修改模块路径和程序化 JShell 实例的添加模块?
我试图通过我使用JShell API创建的 JShell 实例在运行时运行一些 Java 代码。为了演示我的问题,我将分享我的简单代码。
使用我当前的设置,我有一个名为lib的目录,其中包含 MySQL Java 驱动程序:mysql-connector-java-5.1.35.jar。
通过命令工具启动 JShell 并将所需的模块添加为:
然后加载mysql驱动程序对我有用:
我创建了一个类似的 Java 9 模块module-info.java
:
src/example/loadmysql/Runner.java为:
构建/打包后:
很明显,即使example.loadmysql模块需要 mysql 连接器,创建的 JShell 实例也不需要。所以它找不到类。
关于如何以编程方式将模块添加到 JShell 实例的任何想法,因此它像直接 JShell 编码示例一样工作?
更新- 我已经弄清楚如何设置模块路径:
但这还不够。我仍然以某种方式添加了所需的模块。
java-9 - java9版本退出jshell
我最近升级到 java9,我正在使用 java 提供的 Jshell 选项。我觉得它很直观,但我无法关闭 Jshell 窗口,有人可以建议一些相同的命令。
java - 如何运行 JShell 文件?
我想用 JShell 运行整个文件,例如:
my-jshell-skript.java
例如 my的内容在哪里40 + 2;
。
或者一个可执行文件,如:
现在这可能吗,还是我仍然必须采用旧方法而不是 Java-Main-Class?
编辑 1:Windows 问题
在 Windows 上,我仍然没有解决方案:
JShell 开始完全忽略我的文件。它是一个错误吗?
编辑 2:Windows 问题的解决方案
原来这是我的 foo 的内容。似乎1 + 1
只能“即时”工作,而不是从文件中读取: