Vánoční nadílka Vánoční nadílka
Vánoční akce! Daruj lepší budoucnost blízkým nebo sobě. Až +50 % zdarma na dárkové poukazy. Více informací
Avatar
Michal
Člen
Avatar
Michal:6. října 13:24

Ahoj
mám od začátku problémy se spouštěním .jar souborů. Pár posledních dnů už se mi žádné dokonce nespouštěly (programy v prostředí NetBeans samozřejmě fungují správně a chodí).
Dnes jsem si přečetl tento článek + komentáře pod ním.

https://www.itnetwork.cz/…adku-zaklady

Podle návodu jsem si vytvořil samostatné složky (i systémové proměnné) a tam nainstaloval JDK a JRE. (Bavím se o verzi 1.8, což je 8, že jo?)
Na stránkách Oracle jsem našel i JDK10 a JRE10, tak jsem je také nainstaloval do samostatné podsložky.
Do konfig. souboru NetBeans jsem u jdkhome zapsal, že používám 1.8 a spustil jsem NetBeans. Pak jsem spustil a zkompiloval svůj jeden prográmek a zkusil spustit .jar soubor - už se mi zase spouští - takže úspěch.

NetBeans mi ale během kompilace vypisuje kromě jiného toto (černým písmem, ne červeným, 2krát ten samý text):

No base JDK. Package will use system JRE.
No base JDK. Package will use system JRE.

(tj. program mi v NetBeans funguje, a funguje už i po spuštění .jar na ploše počítače, ale tento ne-problém je nejspíš příčinou dalších mých potíží, které s javou mám, např.: samostatnou .jar aplikaci nemůžu zavřít, vycentrovaná zpráva o uzavření aplikace se mi zobrazuje v levém horním rohu - na jiném počítači ten problém nemám, na dalším počítači mi to hlásí, že nebyla nalezena hlavní třída a pod.)

U každého prográmku mám ve složce Libraries: JDK 1.8 (Default). Po dnešku se mi podařilo, že si při vytváření nového projektu můžu vybrat mezi: JDK1.8(Default) a JDK1.8, což je JDK, kterou jsem dnešní instalací přidal. Když jsem si chtěl jako Java Platform v Tools přidat JDK10, tak se mi sice přidala, ale pouze její název. Cesty se tam automaticky nenastavily. Takže se domnívám, že dělám asi někde nějakou hloupou chybu. Došlo mi to, jak se Robert Michalovič v komentářích zmiňuje o tom, že vyšší verze JDK už neobsahují JRE. To by vysvětlovalo, že já prostě umím nastavit jenom JRE

Problém s "No base JDK" jsem hledal i na zahraničních diskuzích, jeden člověk se tam zmiňoval, že po nastavení "něčeho" v Java Platform Manager v záložce Sources mu chyba zmizela. Tak jsem si tam nastavil C:\Program Files\JavaJDK\jdk1­.8.0_181\src.zip a C:\Program Files\JavaJDK\jdk1­.8.0_181\javafx-src.zip

Nejspíš vůbec nemám nastavené JDK, i když ho mám instalované, takže systém použije JRE. Ale jaké JRE, to JRE ve složce JDK myslím ne.

Budu vděčný za jakoukoliv radu.

 
Odpovědět 6. října 13:24
Avatar
Robert Michalovič:7. října 7:58

Podle mě máš rozmrdaný OS různými Javami. Pokud zkompiluješ něco Java10 a chceš to spustit na Java8 tak to nefunguje. Ověř si pořádně jakou Javu používá NetBeans, jakou javu máš nastavenou v příkazovém řádku.(příkaz java -version ). Podívej se do ovládacích panelů jaká Java je tam. Všechno by měla být 1 identická verze. Ještě nejsi dostatečně znalý, jak mít více verzí na jednom OS.

Mimochodem Java11,10 ještě v NetBeans není podporovaná, Java9,8 je nutno použít tento Netbeans http://netbeans.apache.org/…d/index.html.

Nebo přejdi na jiné IDE či doporučuji používej pouze Java8 protože ta 9tka není ve všech IDE stále plně implementovaná( nepodporují run-time image, export *.jmod, přidávání *.jmod do classpath atd,, )

 
Nahoru Odpovědět  +1 7. října 7:58
Avatar
Michal
Člen
Avatar
Michal:7. října 8:49

dík za zprávu a info

celou dobu používám 1.8 (9,10 ani 11 se mi nepodařilo přidat, takže je určitě nepoužívám - nemůžu si je přidat v prostředí NetBeans (respektive jsou prázdné, bez odkazu a obsahu), takže si je potom nemůžu ani zvolit, přidal jsem si je včera v posledním zoufalství a už je mám zase odinstalované)

včera jsem dokonce odinstaloval komplet všechno spojené s Javou (všechny nainstalované Javy, NetBeans, Eclipse, SceneBuilder apod.)
v příkazovém řádku v DOSu (cmd, java -version) mám 1.8, v NetBeans mám na výběr také pouze 1.8)
Spíš myslím, že v NetBeans mi někde chybí donastavit ta 1.8.
Spojitost s operačním systémem to hádám nemá (mám 64bitový).

Ale našel jsem zajímavou odlišnost:
dělám programy v JavaFX - tam to háže právě tu hlášku s "No base JDK", stejně tak jsem si stáhl z itnetwork hru Bunny (velikonoční zajíc), která je také v JavaFX - a taky to hlásí "No base JDK". Když jsem si ale pustil hru AutoHra (Java Swing), která je taktéž z itnetwork, tak to žádný problém nehází.

Takže si říkám, že problém souvisí s JavaFX

 
Nahoru Odpovědět 7. října 8:49
Avatar
Michal
Člen
Avatar
Michal:7. října 9:39

A v souvislosti s tím jsem našel toto:

https://stackoverflow.com/…the-base-jdk

zkusil jsem to v nástrojích NetBeans platform v Sources, ale nepodařilo se (nastavil jsem tam několik cest - odkazů na tu samou složku JavaJDK)

no, a tyhle věci mi nefungují, to je asi jen pro ty, co vytvářejí grafiku v editoru

<fx:platform basedir="${ja­va.home}"/>
<fx:platform basedir="c:\to­ols\jdk7"/>

toto se mi zobrazuje při kompilaci:

Detected JavaFX Ant API version 1.3
Launching <fx:jar> task from C:\Program Files\JavaJDK\jdk1­.8.0_181\lib\ant-javafx.jar
Warning: From JDK7u25 the Codebase manifest attribute should be used to restrict JAR repurposing.
Please set manifest.custom­.codebase property to override the current default non-secure value '*'.
Launching <fx:deploy> task from C:\Program Files\JavaJDK\jdk1­.8.0_181\lib\ant-javafx.jar
No base JDK. Package will use system JRE.
No base JDK. Package will use system JRE.
jfx-deployment-script:
jfx-deployment:
jar:

 
Nahoru Odpovědět 7. října 9:39
Avatar
Robert Michalovič:8. října 8:18

NetBeans nepoužívám. Dle mě to máš špatně nastavené(roz­drbané), možná si špatně nastavil nějaké systémové proměnné JAVA_HOME,JRE_JDK,P­ATH či něco v NetBeans. Zkus je odstranit nebo zkontrolovat. JAVA_HOME a JRE_HOME pokud nepoužíváš JavaEE, tak vůbec neměj.

Podle popisu chyby se domnívám že JDK(C:\Program Files\JavaJDK\jdk1­.8.0_181) nemá přístup k JRE(C:\Program Files\JavaJDK\jdk1­.8.0_181\jre) v JDK a používá čistě JRE(C:\Program Files\JavaJRE\jre1­.8.0_181) . Když spustíš *.jar double-clickem s plochy má se ti spustit JVM z JRE. Pokud to spoustíš přes IDE pak používáš JVM z JDK. Takže takto zjistíš jestli je problém v JRE nebo JDK. nebo v obojích. Mimochodem může být bug i Java 8_181, zkus starší verzi 171,161.

Pokud jsem tvé aktuální nastavení pochopil tak to by u tebe mělo být nastaveno takto:
JAVA_HOME = C:\Program Files\JavaJDK\jdk1­.8.0_181\
PATH = C:\Program Files\JavaJDK\jdk1­.8.0_181\bin
JRE_HOME = C:\Program Files\JavaJRE\jre1­.8.0_181\
<fx:platform basedir="${ja­va.home}"/>
<fx:platform basedir="C:\Program Files\JavaJDK\jdk1­.8.0_181"/>

PS. Přinejhorším prostě to z formátuj a naistaluj OS a IDE celé znova.
PSS. nepoužívej to moje C:\Program Files\JavaJDK\ ale měj to takto C:\Program Files\jdk1.8.0_181 to pro tebe bude nejvhodnější jak je to standardní.

 
Nahoru Odpovědět  +1 8. října 8:18
Avatar
Michal
Člen
Avatar
Michal:8. října 19:48

Díky Roberte
Nejspíš něco dělám špatně.
U JRE udáváš cestu ...jre1.8.0_181\

já ale u JRE, kterou jsem si stáhl, žádnou takovou podsložku nemám ("jre1.8.0_181\")
Stáhl jsem to klasicky z: https://www.oracle.com/…e/downloads/
Zkusím ještě stáhnout tu verzi 1.7 a pro jistotu nainstaluju i do Program Files(x86)

 
Nahoru Odpovědět 8. října 19:48
Avatar
Michal
Člen
Avatar
Michal:8. října 23:01

vše jsem udělal, něco přenastavil, vše přeinstaloval, problém jsem sice nevyřešil, ale alespoň jsem si v tom udělal pořádek a něco se zase přiučil

ale už jsem na přišel - opravdu mi chybí nastavení v NetBeans ID - Tools - NetBeans Platform Manager - záložka "Sources"

 
Nahoru Odpovědět 8. října 23:01
Avatar
Michal
Člen
Avatar
Michal:8. října 23:33

dokonce jsem si to stáhl a nastavil, ale nic to nedělá, tak jsem hledal na NetBeans stránkách, už to tam někdo řešil v roce 2015, maník z NetBeans řekl, že je vše OK a že to není chyba, tak to nebudu už dál řešit :)

Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět 8. října 23:33
Avatar
Michal
Člen
Avatar
Odpovídá na Robert Michalovič
Michal:9. října 7:25

Díky Roberte
Včera jsem na to zapomněl a hlavně jsem zápasil se strašným úkazem. Zkusil jsem přepnout v NetBeans na 1.7 - něco to před přepnutím hlásilo, ale já v takových případech hlášky nečtu a automaticky enteruju :) - a i když jsem vzápětí přepnul zpět na 1.8, tak už mi to pořád hlásilo, že 1.7 nepodporuje lambda funkce a nemohl jsem už program zkompilovat (ještě, že mám zálohu). Těch lambda funkcí tam mám hafo a i kdybych to přepsal na nižší verzi, tak tím problém nevyřeším, protože to zombi nastavení tam stejně zůstane. Abych se ale vrátil k tématu:
Dnes ráno jsem si vzpomněl a zkusil spustit .jar soubor. Zmizel problém s nevystředěním a prográmek šlo bez problémů ukončit. Takže vinou jsou bezpochyby špatně nastavené jdk/jre. Tj. JRE.
A já ti moc děkuji.

 
Nahoru Odpovědět 9. října 7:25
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.