Skip to main content

Java 9 - JShell (Ukázka, strana 99)

Page 1

98 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

Java 9 – JShell – Edice pro netrpělivé jshell> /reset | Resetting state. Skript č. 1 jshell> /list -start s1 : String skript1 = "Skript č. 1"; s2 : System.out.println(skript1); jshell> /set start -retain jshell> /set start | /set start -retain 07.3_Start_1.jsh | ---- 07.3_Start_1.jsh @ 20. 5. 2017 19:31:14 ---| String skript1 = "Skript č. 1"; | System.out.println(skript1); jshell> /set start DEFAULT PRINTING 07.3_Start_2.jsh jshell> /set start | /set start -retain 07.3_Start_1.jsh | /set start DEFAULT PRINTING 07.3_Start_2.jsh | ---- 07.3_Start_1.jsh @ 20. 5. 2017 19:31:14 ---| String skript1 = "Skript č. 1"; | System.out.println(skript1); | ---- DEFAULT ---| 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.*; | ---- PRINTING ---| void print(boolean b) { System.out.print(b); } | void print(char c) { System.out.print(c); } | void print(int i) { System.out.print(i); } | void print(long l) { System.out.print(l); } | void print(float f) { System.out.print(f); } | void print(double d) { System.out.print(d); } | void print(char s[]) { System.out.print(s); } | void print(String s) { System.out.print(s); } | void print(Object obj) { System.out.print(obj); } | void println() { System.out.println(); } | void println(boolean b) { System.out.println(b); } | void println(char c) { System.out.println(c); } | void println(int i) { System.out.println(i); } | void println(long l) { System.out.println(l); } | void println(float f) { System.out.println(f); }

53G_Java_9_pro_netrpelive_ZLOM.doc verze 17.01.6926 – 2017-06-18

Strana 98 z 155 Ukázka elektronické knihy, UID: KOS233033


Kapitola 7 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79

Konfigurace uživatelského prostředí

99

| void println(double d) { System.out.println(d); } | void println(char s[]) { System.out.println(s); } | void println(String s) { System.out.println(s); } | void println(Object obj) { System.out.println(obj); } | void printf(java.util.Locale l, String format, Object... args) { System.out.printf(l, format, args); } | void printf(String format, Object... args) { System.out.printf(format, args); } | ---- 07.3_Start_2.jsh @ 20. 5. 2017 19:32:42 ---| String skript2 = "Skript č. 2"; | System.out.println(skript2); jshell> /set start -retain -default jshell> /set start | /set start -retain -default jshell>

Na řádku 1 jsem aktuální startovní skript (z předchozích výpisů víme, že je to ten implicitní) nastavil jako trvalý. Pak jsem na řádku 3 nastavil dočasný startovní skript na soubor 07.3_Start_1.jsh a na řádku 5 se zeptal na aktuální nastavení startovních skriptů. JShell mi odpověděl, že jako trvalý startovní skript je nastaven ten implicitní a jako dočasný skript v souboru 07.3_Start_1.jsh. Všimněte si, že se po tomto dotazu zobrazí informace o souboru se startovním skriptem– nejdříve jeho název a čas vzniku (řádek 8), pak i jeho obsah (řádky 9 a 10). Jak uvidíme za chvíli, nezobrazuje se jen implicitní skript. Když jsem na řádku 12 resetoval prostředí, spustil se aktuální startovní skript, což se pozná podle vypsaného textu. Připomínám, že spouštění startovního skriptu probíhá v tichém (silent) režimu, kdy se vypisuje jenom to, co spouštěný skript určí k tisku. To ale naznačuje, že by se mohl implicitní skript spustit, aniž bych o tom věděl. Proto jsem pro jistotu na řádku 16 požádal o zobrazení startovního skriptu. Sami vidíte, že z implicitního skriptu tam není ani řádek. Na řádku 21 jsem aktuální startovní skript označil jako trvalý. Když jsem pak na řádku 23 požádal o informaci o startovních skriptech, už se hovořilo o jediném, který je tím pádem aktuální i trvalý. Na řádku 29 se jako startovní skript zadává trojice skriptů, z nichž první dva jsou interní skripty a třetí je skript uložený v souboru 07.3_Start_2.jsh. Jak se můžete přesvědčit v reakci na dotaz na řádku 31, systém se ke všem těmto skriptům chová jako k souborovým (tj. vypisuje jejich název a obsah), i když první z nich je vlastně kopie implicitního skriptu. Na řádku 74 jsem se pak snažil ukázat, že zadáte-li současně název skriptu i parametr -retain, nastaví se zadávaný skript (sada zadaných skriptů) současně jako aktuální i trvalý. Reakce na dotaz z řádku 76 to potvrzuje. 53G_Java_9_pro_netrpelive_ZLOM.doc verze 17.01.6926 – 2017-06-18

Strana 99 z 155 Ukázka elektronické knihy, UID: KOS233033


100

Java 9 – JShell – Edice pro netrpělivé

Nastavení startovního skriptu v příkazovém řádku Stejně jako zpětnovazební režim i startovní skript je možno zadat při spouštění programu JShell jako parametr (parametry) příkazového řádku. Startovní skript se nastavuje prostřednictvím parametru --startup <file> Chcete-li v rámci startovní posloupnosti spustit postupně několik souborů, uvedete zadaný parametr několikrát. Požadavky příkazu z řádku 29 výpisu 7.9 bychom prostřednictvím parametrů příkazového řádku zadávali: JShell --startup DEFAULT --startup PRINTING --startup 07.3_start_2.jsh Na rozdíl od zpětnovazebních režimů se mi u těchto parametrů nepodařilo zadat parametr -retain – JShell se hned vzbouřil, že takový soubor nenašel.

7.4

Nastavení proměnné classpath

Budete-li chtít používat ve svých úryvcích nějakou knihovnu, budete potřebovat, aby byla zařazena mezi prohledávané cesty definované v proměnné CLASSPATH. Toho dosáhnete zadáním příkazu /env s parametrem -class-path, za nímž uvedete seznam cest k použitým knihovnám. Jednotlivé cesty budou od sebe odděleny oddělovačem platným pro daný operační systém – ve Windows středníkem, v Linuxu dvojtečkou. Vzhledem k tomu, že se rozšířením seznamu prohledávaných cest může leccos změnit, tak se po tomto příkazu automaticky provede příkaz /reload -quiet Z toho ovšem vyplývá, že tyto cesty nemůžeme přidávat po jedné, jak to děláme např. s příkazy import. Musejí se přidat všechny současně, protože by JShell po žádosti přidání té druhé provedl reset a při něm by ze seznamu odebral tu první. Pojďme si to vyzkoušet. Pokud jste si stáhli doprovodné programy, měli byste mít v podsložce Lib připravené dva JAR-soubory s doprovodnými knihovnami: ● Soubor js.Win_Class.jar obsahuje jedinou demonstrační třídu js.Win, která zobrazí okno, s nímž můžeme experimentovat. ● Soubor N56-Lib-en_Framework.jar obsahuje jednoduchý framework, který používám ve svých začátečnických učebnicích. My tu z něj použijeme pouze třídu eu.pedu.lib.util.IO. Ve výpisu 7.10 najdete záznam seance, v níž jsem se snažil vše demonstrovat. Pojďme si ho projít krok za krokem. 53G_Java_9_pro_netrpelive_ZLOM.doc verze 17.01.6926 – 2017-06-18

Strana 100 z 155 Ukázka elektronické knihy, UID: KOS233033


Turn static files into dynamic content formats.

Create a flipbook
Java 9 - JShell (Ukázka, strana 99) by Kosmas-CZ - Issuu