Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java 9 में JShell को कैसे डीबग करें?

JShell डीबगिंग

JShell एक REPL टूल है जो कोड स्निपेट्स को क्लासेस में रखे बिना चलाने की अनुमति देता है। यह टूल डिक्लेरेशंस, स्टेटमेंट्स, और एक्सप्रेशंस को Java में मूल्यांकन करने का एक तरीका प्रदान करता है और कोड के कुछ हिस्सों का परीक्षण करने के लिए main() मेथड बनाने की आवश्यकता नहीं है।

/debug कमांड का उपयोग JShell टूल कार्यान्वयन के लिए डीबगिंग जानकारी प्रदर्शित करने के लिए किया जा सकता है। एक बार जब हम /debug कमांड टाइप करते हैं, तो डीबगिंग मोड चालू हो जाता है। डीबग मोड सक्षम करने के बाद और साधारण जोड़ या स्ट्रिंग जैसा कुछ टाइप करने पर, यह नीचे दिखाए अनुसार प्रिंट होता है।

उदाहरण 1: साधारण जोड़

jshell> /debug
| Debugging on
jshell> 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

/debug कमांड JShell के आंतरिक कंपाइलेशन और निष्पादन प्रक्रिया में विस्तृत अंतर्दृष्टि प्रदान करता है।

  1. - जावा 9 के JShell में पैकेज इम्पोर्ट्स

    सामान्यतः, JShell का उपयोग करके 10 पैकेज डिफ़ॉल्ट रूप से इम्पोर्ट किए जाते हैं। निम्नलिखित कमांड डिफ़ॉल्ट रूप से इम्पोर्ट किए गए पैकेज दिखाता है। /import आउटपुट import java.io.* import java.math.* import java.net.* import java.nio.file* import java.sql.* import java.util.* import java.util.

  1. - JShell में Java 9: सिस्टम प्रॉपर्टीज कैसे प्राप्त करें

    JShell Java 9 का REPL टूल है जो बिना main() मेथड के Java कोड को इंटरैक्टिव रूप से चलाने की अनुमति देता है। इसे कमांड लाइन पर jshell टाइप करके शुरू किया जा सकता है। सिस्टम प्रॉपर्टीज एक्सेस करने के तरीके 1. एकल प्रॉपर्टी प्राप्त करना: System.getProperty(key) विशिष्ट कुंजी के लिए मान लौटाता है, या य

  1. Java 9 में JavaFX का उपयोग करके JShell को प्रोग्रामेटिक रूप से लागू करें Java 9 में JavaFX का उपयोग करके JShell को प्रोग्रामेटिक रूप से लागू करें

    Java 9 ने jdk.jshell API पेश किया जो डेवलपर्स को अपने एप्लिकेशन में JShell कार्यक्षमता को एम्बेड करने की अनुमति देता है। यह लेख दिखाता है कि एक JavaFX एप्लिकेशन कैसे बनाया जाए जो JShell का उपयोग करके कोड स्निपेट्स का मूल्यांकन करता है और परिणाम प्रदर्शित करता है। आवश्यक निर्भरताएं Java 9+ (JSh