草庐IT

java - JShell <Shift+tab i> 在 jdk 9 中无法正常工作

在Fedora中尝试JShell时,我尝试使用指定的片段转换快捷方式here,但我认为它不起作用它正在显示UnexpectedcharacterafterShift-Tab.Use"i"forauto-importor"v"forvariablecreation.Formoreinformationsee:/helpshortcuts我尝试了那些消息中指定的方法,但结果还是一样任何想法或我做错了什么?$javac-versionjavac9java-versionopenjdk版本“9”OpenJDK运行时环境(build9+181)OpenJDK64位服务器虚拟机(build9+18

java - 如何运行在 JShell 中作为片段添加的整个 Java 文件?

我尝试安装JDK9抢先体验版本172来玩转JShell。当我尝试打开一个简单的java文件并在将其添加为代码段后执行它时,它只显示修改后的类Test并增加了代码段编号。你能帮我看看我哪里做错了吗?|WelcometoJShell--Version9-ea|Foranintroductiontype:/helpintrojshell>/openG:\kavitha\Test.javajshell>/list1:publicclassTest{publicstaticvoidmain(String[]args){inti=1;intj=2;System.out.println("Sumof

java - 列出jshell中所有活跃的方法

是否有任何命令可以打印当前jshellsession中所有新创建的方法?类似于/list但仅用于方法 最佳答案 你正在寻找命令/methods-all打印所有方法,包括启动JShell时添加的方法,以及失败、被覆盖或删除的方法。对于您声明的Activity方法,只需使用它而无需任何参数:/methods 关于java-列出jshell中所有活跃的方法,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q

java - 为什么以及如何使用 JShell?

我看了几个JShell教程,但我仍然不明白最重要的部分:我为什么要使用JShell?甲骨文是这样说的:"Youcantestindividualstatements,tryoutdifferentvariationsofamethod,andexperimentwithunfamiliarAPIswithintheJShellsession".是的,太棒了,但对于所有这些事情,我只需使用IDE即可。我明白,REPL应该使代码评估更快。但是,使用Sysout在IDE中的虚拟HelloWorld项目中测试一段代码肯定不会更慢吗?事实上,IDE提供自动完成功能,及早检测错误,我可以通过单击鼠

java - 在 JShell 中访问 "parent scope"

看来,在另一个JShell中创建的JShell对象无法访问父级的JShell范围。例如:jshell>intx=1;x==>1jshell>xx==>1jshell>jdk.jshell.JShelljs=jdk.jshell.JShell.create();js==>jdk.jshell.JShell@1a052a00jshell>js.eval("x");$4==>[SnippetEvent(snippet=Snippet:ErroneousKey#1-x,previousStatus=NONEXISTENT,status=REJECTED,isSignatureChange=fa

java - 在 Java Shell 中启用断言

C:\Users\Malvolio>jshell|WelcometoJShell--Version9.0.1|Foranintroductiontype:/helpintrojshell>assert(false)jshell>如何让JavaShell在断言失败时抛出AssertionError? 最佳答案 使用命令选项启动它:jshell-R-ea 关于java-在JavaShell中启用断言,我们在StackOverflow上找到一个类似的问题: http

java - 如何在 intellij JShell 控制台中导入自定义类

我正在使用新的intellijJshell控制台(此处介绍https://blog.jetbrains.com/idea/2017/09/java-9-and-intellij-idea/)我创建了一个简单的类文件Test2.javapublicclassTest2{publicstaticStringtest(){return"Hello";}}JShell控制台能够在提示中找到方法当我尝试在intellijjshell控制台(工具>Jshell控制台)上运行它时Test2.test();出现以下错误"C:\ProgramFiles\Java\jdk-9.0.1\bin\java"-

用于运行应用程序的 Java 9 REPL

Java9正在引入名为JShell的REPL在JDK发行版中。有什么方法可以连接到运行某些应用程序的JDK的JShell并执行引用该正在运行的应用程序的命令。例如,从应用程序代码中执行一些方法,检查对象等。? 最佳答案 JShell不是标准的java命令,它是另一个命令。一旦您打开shell,它就会“进入”ReadEvalPrintLoop。一旦您键入一个命令,它就会被shell读取和解析、评估并打印结果。您可以定义变量并将类添加到类路径,但我认为从那里启动应用程序或服务器是不可能的,至少在这个阶段不能,而且不能在同一个JVM中。因

java - 在 Java 9 的 JShell 中创建模块

只是探索Java的新版本、它的新模块系统,以及使用jshell。可能我的问题没有太多意义,但我只是好奇。所以我想出了一个问题:有没有办法在jshell中创建一个模块?或者模块只能在module-info.java中创建? 最佳答案 目前无法使用JShell创建模块,它不是GoalofJShell要么。JShell功能TheJShellAPIwillprovideallofJShell'sevaluationfunctionality.ThecodefragmentsthatareinputtotheAPIarereferredtoa

java - 使用 JShell 进行调试

我在JShell中写了一个Java方法,现在我想调试它。我想设置断点或至少逐行执行。JShell有这些调试能力吗? 最佳答案 为了进一步澄清,来自JEP:TheJavaShell(Read-Eval-PrintLoop)本身,非目标状态:Outofscopearegraphicalinterfacesanddebuggersupport.TheJShellAPIisintendedtoallowJShellfunctionalityinIDEsandothertools,butthejshelltoolisnotintendedto