Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: boonn 09 Července 2016, 19:36:23

Název: [solved]Rozchození JavaFX 1.3 na x86-64 ubuntu
Přispěvatel: boonn 09 Července 2016, 19:36:23
*pozn. po vyřešení - upraven nadpis aby více vystihoval jádro problému
- velké díky JV za vyřešení viz níže

Zdravím,
cvičení v této volně šiřitelné java učebnici jsou v javaFX http://www.java.cz/article/ucebnicejazykajava (http://www.java.cz/article/ucebnicejazykajava).

Myslíte, že je nějaká šance je na ubuntu zobrazit?

Zkoušel jsem open jdk s nainstalovaným balíkem openjfx a icetea pluginem ve FF a teď oracláckou 8, s pluginem ve FF a pořád nemohu zobrazit zadání. Zkusil jsem chmodnout všechny soubory učebnice jako 775 a nic víc už mě nenapadá, než že to není možné rozchodit.

Předem díky za odpovědi.

-PS: po vyřešení
Název: Re:Jde zobrazit html stránku s JavaFX na ubnt?
Přispěvatel: Jakub Vaněk 09 Července 2016, 21:23:34
[neproduktivní nadávání]
Na 64bitovém novém systému ne, protože na novém software je ta učebnice totální [radši nic] a stará JavaFX není zkompilovaná pro x86_64 Linux, což je [radši nic].
[/neproduktivní nadávání]
V prohlížeči jsem to nezkoušel. Zkoušel jsem "desktopovou verzi" programu coSeVytiskne. Zkoumal jsem, co to je zač. Fajn. Webová aplikace. Zkusím otevřít jarko, nejde to (protože jsem blbej), pak už to otvírám přes javaws, nejde to, vyhazuji dependenci na JavaFX 1.3, kvůli které to padá, nejde to, přidávám složku do výjimek, nejde to, přidávám do výjimek přímo to jarko a konečně někde jsme. Chce to konkrétně JavaFX 1.3, která ale už je zastaralá. No co, postahuju to, dám to do classpathu ale už teď něco nehraje: javafx-rt-linux-i586__V1.3.1_b101.jar. Mám x86_64, takže tuším, že to nepůjde. No, nejde, ale zkouším to jinak. Dostávám se k tomuhle příkazu:
Kód: [Vybrat]
java -classpath '/tmp/UcebniceJazykaJava/cviceni/javafx/javafx-rt-linux-i586__V1.3.1_b101.jar:/tmp/UcebniceJazykaJava/cviceni/javafx/javafx-rt-natives-linux-i586__V1.3.1_b101.jar:/tmp/UcebniceJazykaJava/cviceni/javafx/javafx-rt-lazy-linux-i586__V1.3.1_b101.jar:/tmp/UcebniceJazykaJava/cviceni/javafx/javafx-rt-fonts-linux-i586__V1.3.1_b101.jar:./coSeVytiskne.jar' com.sun.javafx.runtime.Main cosevytiskne.Mainnacházím tento:
Kód: [Vybrat]
java -cp "/tmp/UcebniceJazykaJava/cviceni/javafx/javafx-rt-linux-i586__V1.3.1_b101.jar:./coSeVytiskne.jar" -Djava.library.path="/tmp/UcebniceJazykaJava/cviceni/javafx/" com.sun.javafx.runtime.main.Main MainJavaFXScript=cosevytiskne.Maina obojí vrátí tohle:
Kód: [Vybrat]
java.lang.NoSuchMethodError: javafx.scene.Parent.<init>(Z)V
at javafx.scene.CustomNode.<init>(Unknown Source)
at cosevytiskne.coSeVytiskne.<init>(coSeVytiskne.fx)
at cosevytiskne.Main$Main$Script.applyDefaults$(Main.fx:16)
at cosevytiskne.Main.javafx$run$(Main.fx)
Pak začínám psát tohle. Zkouším stáhnout JavaFX 1.3.1 SDK a použít to (/tmp/javafx-sdk1.3/bin/javafx -cp /tmp/UcebniceJazykaJava/cviceni/coSeVytiskne/coSeVytiskne.jar cosevytiskne.Main), ale taky to nejde. Pak nacházím, že to <init>(Z)V je signatura JNI (Java Native Interface), takže se potvrdilo podezření na špatnou architekturu.
Název: Re:Jde zobrazit html stránku s JavaFX na ubnt?
Přispěvatel: Jakub Vaněk 09 Července 2016, 21:27:20
Možná uspěješ s 32bit Oracle JVM, já nemám náladu to instalovat.
BTW tohle mi připomnělo http://www.hovnokod.cz/763 :D
EDIT: neber to jako naštvání na tebe, to je naštvání spíš na Sun a Oracle ;)
Název: Re:Jde zobrazit html stránku s JavaFX na ubnt?
Přispěvatel: boonn 09 Července 2016, 22:06:30
Ok, díky tak daleko jsem nedošel, ale tušil že to tím mohlo být  - potvrdil jsi mi to - napíšu autorovi aby to překompiloval, a prozatimně si napíšu provizorní něco, co mi bude tahat zadání těch cvičení z těch xhtml. Použítí JavaFX pro načítání pár řádek zadání a odpovědí mi přijde zbytečné, ale autor - btw profesor fakultu inf. tech. to asi napsal takle složitě jako "ukázku" co se s tím nechá dělat.

ps: i když jsem to sem nepsal, tak já jsem zas kvůli tomu přešel z 14.04 na xeniala, /bránil jsem se kvůli systemDčku/, protože jsem chtěl mít open javu a balík openjfx je funkční až v xenialu. I když vím, že by to asi šlo zkompilovat a rozchodit ... no abych to shrnul, nejsem expert, ale systemD pfff
Název: Re:[solved]Jde zobrazit html stránku s JavaFX na ubnt?
Přispěvatel: Jakub Vaněk 09 Července 2016, 23:23:15
Dokázal jsem se uklidnit a nějak to zprovoznit :D
Tohle mi fungovalo:
1) je potřeba si ze stránek Oracle stáhnout JRE 6.0 (http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html#jre-6u45-oth-JPR), verze Linux x86 (jre-6u45-linux-i586.bin). Bohužel je potřeba účet u Oracle...
Ten soubor někam ulož. Pak mu dej spustitelný příznak (chmod +x jre-6u45-linux-i586.bin) a spusť ho. To rozbalí JRE do složky se souborem.
2) stáhni si JavaFX 1.3.1 SDK. Ten stáhni také tam někam a rozbal ho.
3) Dál to bude v terminálu. Je potřeba nastavit proměnnou PATH a JAVA_HOME:
Kód: [Vybrat]
export PATH="/kde/je/rozbalené/JavaFX/SDK/javafx-sdk1.3/bin:/kde/je/rozbalené/JRE/jre1.6.0_45/bin:$PATH"
export JAVA_HOME="/kde/je/rozbalené/JRE/jre1.6.0_45"
Pak u mě bylo potřeba doinstalovat chybějící 32bitovou knihovnu:
Kód: [Vybrat]
sudo apt-get install libxtst6:i386Dále už stačí jen prozkoumat a spustit dané cvičení. Je potřeba otevřít .jar soubor a zjistit balík hlavní třídy. Ten balík má obvykle název stejný jako cvičení, ale může mít jinak velká písmena. Také je třeba zjistit XML soubor cvičení, ten bude ve stejném balíku jako hlavní třída.
Pak už by nic nemělo bránit spuštění:
Kód: [Vybrat]
javafx -cp </cesta/k/jarku/ve/cvičení.jar> <balík.hlavní.třídy.Main> zdrojXML=<názevsouboru.xml>Příklad:
Kód: [Vybrat]
javafx -classpath /tmp/UcebniceJazykaJava/cviceni/coSeVytiskne/coSeVytiskne.jar cosevytiskne.Main zdrojXML=coSeVytiskne1.xmlVýsledek je v příloze.