如何在Java 9中调试JShell?

JShell 是一个REPL工具,它允许运行代码片段,而无需将其放置在类中。该工具提供了一种评估Java中的声明,语句和表达式的方法 ,而无需创建 main()方法来测试代码的某些部分。

命令“ / debug ”可用于显示JShell工具实现的调试信息。键入“ / debug”命令后,调试模式将打开。启用调试模式并键入诸如简单加法或简单字符串之类的内容后,将显示以下内容。

示例1

jshell> /debug

| Debugging onjshell> 5+3

Compiling: 5+3

Kind: EXPRESSION_STATEMENT -- 5 + 3;

compileAndLoad [Unit($1)]

++setCompilationInfo() Snippet:VariableKey($1)#11-5+3

package REPL;

import java.io.*;import java.math.*;import java.net.*;import java.nio.file.*;import java.util.*;

import java.util.concurrent.*;import java.util.function.*;import java.util.prefs.*;

import java.util.regex.*;import java.util.stream.*;class $JShell

$11 {

public static

int $1;

public static Object do_it$() throws Throwable {

return $1 = 5+3;

}

}

-- diags: []

setStatus() Snippet:VariableKey($1)#11-5+3 - status: VALID

compileAndLoad ins = [Unit($1)] -- legit = [Unit($1)]

Compiler generating class REPL.$JShell$11

compileAndLoad [Unit($1)] -- deps: [] success: true

recordCompilation: Snippet:VariableKey($1)#11-5+3 -- status VALID, unresolved []

$1 ==> 8


示例2

jshell> /debug

| Debugging on

jshell> String s = "Adithya"

Compiling: String s = "Adithya";

Kind: VARIABLE -- String s = "Adithya"

compileAndLoad [Unit(s)]

++setCompilationInfo() Snippet:VariableKey(s)#12-String s = "Adithya";

package REPL;

import java.io.*;import java.math.*;import java.net.*;import java.nio.file.*;import java.util.*;

import java.util.concurrent.*;import java.util.function.*;import java.util.prefs.*;

import java.util.regex.*;import java.util.stream.*;import static REPL.$JShell$11.$1;

class $JShell$12 {

public static String s;

public static Object do_it$() throws Throwable {

String s_ =

"Adithya";

return s = s_;

}

}

-- diags: []

setStatus() Snippet:VariableKey(s)#12-String s = "Adithya"; - status: VALID

compileAndLoad ins = [Unit(s)] -- legit = [Unit(s)]

Compiler generating class REPL.$JShell$12

compileAndLoad [Unit(s)] -- deps: [] success: true

recordCompilation: Snippet:VariableKey(s)#12-String s = "Adithya"; -- status VALID, unresolved []

s ==> "Adithya"


如果我们想“关闭”调试模式,则在同一会话中再次键入“ / debug” 命令。

jshell> /debug

| Debugging off

以上是 如何在Java 9中调试JShell? 的全部内容, 来源链接: utcz.com/z/331072.html

回到顶部