Prostředí BlueJ / BlueJ
a jeho konfigurace
For english version go to
http://edu.pecinovsky.cz/bluej_config/index.html.
Naposledy aktualizováno:
2016-07-21 – 01:56
Obsah
Ve svých knihách pro začátečníky používám vývojové prostředí BlueJ,
protože je považuji za prozatím nejlepší výukový nástroj pro vážný vstup
do světa objektově orientovaného programování.
Je to prozatím jediné vývojové prostředí, které i v začátečnických kurzech dovoluje
navrhovat architekturu programu prostřednictvím jednoduchého diagramu tříd,
přičemž vlastní kód navrženého programu vytváří zabudovaný generátor kódu.
Nemusíme se proto hned od počátku kurzu zabývat syntaxí použitého jazyka
a z ní vyplývajícím zakódováním jednotlivých částí navrženého programu.
Tím se můžeme začít zabývat až poté, co si studenti osvojí základy návrhu architektury.
To je nesmírně důležité, protože studenti, kteří se nejprve naučí navrhovat kód,
pak mívají velké problémy s návrhem architektury jakéhokoliv rozsáhlejšího programu.
BlueJ navržený program na požádání zakóduje.
Všechny následné změny v návrhu architektury okamžitě promítá do generovaného kódu,
a naopak všechny architektonické změny zanesené do kódu okamžitě promítnou
do diagramu tříd zobrazujícího architekturu programu.
Prostředí BlueJ je navíc tak jednoduché,
že se je během chvíle naučí používat i naprostí začátečníci.
Koncepce prostředí BlueJ je z hlediska výuky geniální.
Bohužel jeho autoři si zřejmě neuvědomili genialitu jimi navržené koncepce
a nepokračovali dále v jejím zdokonalování. Místo toho směřovali další vývoj prostředí
směrem ke standardu, a nezakomponovali proto do něj všechny možnosti,
které takto koncipované vývojové prostředí nabízí.
Začal jsem proto se svými studenty toto vývojové prostředí vylepšovat,
aby lépe vyhovovalo požadavkům výuky podle metodiky Architecture first
podle níž jsou koncipovány všechny mé učebnice.
Upravené prostředí označujeme jako BlueJ++.
Abyste mohli postupovat podle mých učebnic, nemůžete používat původní verzi prostředí
BlueJ. Musíte instalovat jeho upravenou verzi – BlueJ++.
Po následně popsané instalaci, resp. konfiguraci bude prostředí BlueJ++ konfigurováno tak,
jak předpokládá text mých knih nezávisle na tom, v kterém roce vyšly a se kterou verzí programu
pracují. Podoba všech oken by pak měla zhruba odpovídat obrázkům v knihách.
Upozornění
Pracujete-li s některou z knih, které ještě používají některou ze starších verzí
BlueJ 2.x
musíte v úvodních kapitolách vyměnit název vytvářené třídy Test
.
Novější verze BlueJ totiž používají novější verzi testovací knihovny, a ta si
uvedený název blokuje pro sebe. Můžete proto třídu nazvat např. Testy
nebo Tests
Java 8 a JDK
Doporučený postup instalace a zprovoznění vlastního prostředí BlueJ++ se liší
podle požitého operačního systému.
Windows
Patříte-li mezi 85 % mých čtenářů a studentů a používáte-li
operační systém Windows,
postupujte následovně:
-
Stáhněte si soubor
BlueJ_3.1.7++0.0823_2017-07-24.zip.
-
Rozbalte obsah souboru do složky, v níž chcete mít BlueJ++ instalovaný.
V cílové složce se vytvoří podsložka BlueJ++
se spustitelným programem.
-
Pro ověření správné instalace spusťte soubor
BlueJ++.exe
.
Linux nebo IOS
Patříte-li mezi statní uživatele a používáte-li operační systém
Linux nebo IOS,
postupujte následovně:
-
Ze stránky http://bluej.org/
nejprve instalujte BlueJ pro váš operační systém.
Pozor! Musíte instalovat BlueJ ve verzi 3.1.7.
S jinou verzí konfigurační soubor nefunguje!
Při instalaci musíte dát pozor na to, abyste BlueJ instalovali do složky,
v níž vám operační systém umožní následně provést požadované změny,
tj. přepsat některé stávající soubory a přidat soubory nové.
Hlavně si pak musíte zapamatovat, kam jste prostředí instalovali!
-
Stáhněte si konfigurační soubor
BlueJ_3.1.7++LIB_0.0823_2017-07-24.zip.
-
Nyní najděte složku, kam jste instalovali BlueJ.
Další postup se opět liší podle použitého operačního systému:
-
Používáte-li operační systém Linux, tak v nalezené složce otevřete
podsložku lib
.
-
Používáte-li počítače Apple, budete to mít trochu složitější (předpokládám ale,
ale, že na to jste při komunikaci s programy určenými pro "zbytek světa" zvyklí):
-
Ve složce, kam jste instalovali BlueJ, najděte položku
BlueJ.app
-
V její místní nabídce zadejte příkaz
Show Package Contents
,
resp. jeho ekvivalent v jazyce vašeho operačního systému.
-
V takto otevřené složce
Contents
otevřete její
podsložku Resources
a v ní její podsložku Java
.
To, že jste otevřeli správnou složku poznáte (nezávisle na operačním systému)
podle toho, že v ní najdete (mimo jiné) soubory bluej.defs,
bluej.jar
a bluejcore.jar
, které v následujícím kroku nahradíte.
-
Do této podsložky zkopírujte obsah složky
Contents
staženého konfiguračního souboru.
Přitom se přepíší výše zmíněné (a některé další) soubory a přidá se několik dalších
souborů a podsložek.
-
Pro ověření správné instalace program spusťte.
Lokalizace výše uvedeným způsobem konfigurovaného prostředí je implicitně nastavena
na fiktivní jazyk English_RP, což je původní anglická lokalizace
s upravenými šablonami zdrojových souborů a s texty používanými v rozšiřujících doplňcích.
Dáváte-li přednost české lokalizaci, můžete využít toho, že prostředí BlueJ umožňuje
operativní změnu lokalizace prostým zadáním požadovaného jazyka v dialogovém okně
Preferences (otevřete je zadáním příkazu
Tools → Preferences)
na kartě Interface v seznamu Language.
Počítejte s tím, že nově nastavená lokalizace se uplatní až při příštím spuštění programu.
Oproti standardní verzi do projektu postupně zanášíme následující změny:
-
Zdrojové kódy mají povinně kódování UTF-8, což odstraní problémy při zpracovávání
znaků s diakritikou a nejrůznějších nestandardních znaků (např. §, ß, ©, ™, ☺)
při přechodu mezi operačními systémy a jejich lokalizacemi.
-
V diagramech tříd je následně rozšířeno barevně odlišení datových typů:
-
Jsou odlišeny druhy datových typů:
standardní třída × abstraktní třída × výčtový typ × interfejs.
-
Jsou zvýrazněny třídy implementující některé návrhové vzory
(Knihovní třída, Jedináček, Přepravka).
-
Jsou odlišeny třídy zvláštního určení (testovací třída, aplet).
-
Místní nabídky objektů (tříd i jejich instancí) uvádějí nejenom přehled jejich
nesoukromých metod, ale i jejich nesoukromých atributů.
-
V interaktivním režimu lze definovat nejenom testovací přípravek a testovací metody,
ale libovolné atributy a metody včetně konstruktorů a soukromých členů.
-
Při definici metod jsou v zásobníku odkazů zobrazeny pouze lokální proměnné.
Atributy jsou přístupné prostřednictvím místní nabídky jejich vlastníků,
resp. prostřednictvím inspekčního okna jejich vlastníků (tříd, resp jejich instancí).
-
Je možno pracovat s proměnnými jak objektových ,tak primitivních typů.
-
Hodnoty atributů i lokálních proměnných je možno měnit.
-
Hlavní rozšíření se dotkla interaktivního režimu. V tomto režimu je možno:
-
Definovat testovací přípravek a testovací metody (to bylo možno i dříve).
-
Definovat a/nebo mazat atributy objektů – tříd i jejich instancí,
a to pro všechna nastavitelná přístupová práva včetně soukromých.
-
Definovat a/nebo mazat standardní metody tříd (třídní i instanční)
a implicitní metody interfejsů.
-
Deklarovat a/nebo mazat abstraktní metody v abstraktních třídách a interfejsech.
-
Definovat a/nebo mazat konstruktory instancí včetně možnosti předávání zodpovědnosti
za inicializaci instance některému dříve definovanému konstruktoru.
-
Prostředí BlueJ je nyní možno integrovat jako zásuvný modul (plugin)
do vývojového prostředí NetBeans.
Řada uvedených změn je již zanesena, další se dokončují. Paralelně se připravují učebnice,
které by již toto vylepšené prostředí využívaly a umožňovaly vytvářet bez kódování
mnohem složitější program, než tomu bylo doposud.
Aby však bylo možno pracovat i podle mých starších učebnic, odpovídá výchozí stav prostředí
podobě používané v dosavadních učebnicích.
Z vyjmenovaných změn se tak ve výchozím stavu uplatní pouze
vybarvování různých druhů datových typů a povinnost kódovat zdrojové programy v UTF-8.
Tato sekce je určena pro odpovědi na vaše nejčastější dotazy.
Narazíte-li při změně konfigurace na jakýkoliv problém
nebo budete mít nějaký dotaz či přání týkající se konfigurace BlueJ,
pošlete mi mail
s předmětem začínajícím BlueJ_Config_Dotaz:.
Bude-li se dotaz týkat něčeho obecnějšího,
zveřejním zde odpověď i pro ty ostatní.