问题标签 [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-9 - 在 jshell 中创建自定义反馈模式
从 jshell 中 /set 反馈的文档来看,有以下内置模式:
是否可以创建兼具简洁和静音功能的反馈模式?或者我们可以改变上述任何一种模式?或者我们可以创建自己的自定义反馈模式吗?
java-9 - 如何在 jshell 脚本中获取用户输入?
问题:
如何在jshell 脚本中获取用户输入?或者我做错了什么?
注意:我不是在寻找如何将参数传递给 jshell script。
例子:
例如脚本hello.java
:
如果我在 jshell 中逐行键入它会起作用,但是我运行jshell hello.java
它不会。抛出java.util.NoSuchElementException
。
我得到的输出:
我的系统:Linux Mint 18.2(x64),JShell 版本 9.0.1
terminal - 我可以在 Unix 期望中运行 jshell 吗?
我想使用expect重定向jshell输入,这样我就可以模拟输入录制的演示。但是,虽然我可以从一个期望脚本生成一个 jshell 进程,它也可以识别 jshell 提示符,但在那之后就没有任何效果了。期望输出看起来像控制序列的东西,比如^[[24;9R
,我没有看到来自 jshell 的任何输出。不同的终端类型产生不同的字符序列,但它们都不起作用。这种行为在 Ubuntu 和 Mac OS 上的期望是一致的。欢迎任何有关如何调查此问题的建议。expect -d
没有帮助。
这是我要模拟的 jshell 会话的记录
这是我认为应该这样做的脚本:
当我运行该脚本(在 Mac OS 10.11.6 上,但在 Ubuntu 上得到非常相似的结果)时,我看到了这个输出
然后期望超时,并且最后一行输出被 shell 提示符覆盖(因此看起来好像在超时时正在写入更多控制字符)。
添加-d
到脚本第 1 行中的期望标志会产生以下输出:
java - 如何在 intellij JShell 控制台中导入自定义类
我正在使用新的 intellij Jshell 控制台(此处介绍https://blog.jetbrains.com/idea/2017/09/java-9-and-intellij-idea/)
我创建了一个简单的类文件 Test2.java
当我尝试在 intellij jshell 控制台上运行它时(工具>Jshell 控制台)
我收到以下错误
我需要为 JShell 配置什么来识别我的自定义类吗?
我已将其设置为使用我的项目的类路径。
编辑:
我还尝试按照用户@NullPointer 的建议将代码移动到一个包中并将其导入Jshell。
同样的错误仍然存在,它还给了我“错误:包 angelapps.java 不存在”错误。
java - 如何获取对当前运行的 Jshell 的引用
我有一个文件,我在其中写了一些变量。我想在使用 JShell 打开的运行时应用程序上将这些变量解析为这个 Jshell 实例。
FileWithVars.XYZ
目前我在 jshell 启动脚本中使用 /o FileWithVars.XYZ 加载此文件,但现在我想从在 Jshell 中运行的应用程序执行相同的操作。
任何想法如何存档?
亲切的问候
java - jshell选项卡完成非实例方法
新的 Java shell,jshell,允许 tab 补全,它显示了类的给定实例可用的所有方法。例如,如果我这样做...
...我看到了Integer
对象可用的所有方法。如何查看整个类可用的方法和变量,而不仅仅是类的实例?
java - JShell 如何(或在哪个文件中)存储其配置设置?
医生说:
请记住,启动脚本仅在状态重置时才加载到当前会话中。存储脚本的内容,而不是对脚本的引用。
例如,
但是它在哪里存储mystartscript.jsh的内容呢?
java - JShell 如何查找变量或结果的类型
如何在 JShell 中查找变量或表达式结果的类型。
在 Java 中试验位运算符
是否有像 Python type(5<<-1) 这样的替代方法来在 Jshell 中查找表达式或变量的结果类型。
java - 与 JShell 实例共享动态加载的类
请查看下面的编辑
我正在尝试创建一个JShell 实例,它可以让我访问并让我与创建它的JVM中的对象进行交互。这适用于在编译时可用但对于动态加载的类失败的类。
此外,交换DirectExecutionControl
与LocalExecutionControl
给出相同的结果,但我不明白这两个类之间的区别。
如何使在运行时加载的类可用于此JShell 实例?
编辑:这个问题的第一部分已经解决,下面是更新的源代码来演示问题的第二部分
这是预期的输出,如果JVM和JShell 实例不共享任何内存,但是com.example.test.C
直接添加到项目而不是动态加载它会改变结果,如下所示:
为什么在运行时加载的类不共享JVM和JShell 实例之间的内存?
编辑2:问题似乎是由不同的类加载器引起的
在上述示例的上下文中执行以下代码:
这表明,同一个类com.example.test.C
由两个不同的类加载器加载。是否可以将类添加到 JShell 实例而不再次加载它?如果不是,为什么静态加载的类已经加载?
android-studio - Android Studio 中的 JShell 控制台
IntelliJ IDEA 2017.1 有一个内置的 JShell,它可以导入所有项目的库等。
是否可以在 Android Studio 中使用它?(它不在Tools
菜单中,如博客文章中所述)。
更新:Android 仍然不完全支持 Java 8,JShell 是 Java 9。仍然可以使用gradle jshell 插件,或者使用Kotlin REPL。