Jak na JAVU? Neumím zkompilovat do JAR
Situace je taková - stáhl jsem si pěkný program circuit.jar, ke kterému dal autor i zdrojové kódy. Potřeboval bych tam něco drobného změnit. V Javě nedělám, tak se v tom plácám. Když to vezmu od konce:
Rozbalil jsem dotyčný program příkazem
jar xf circuit.jar
to mi vytvořilo soubory *.class a ve složce Meta-inf soubor manifest.mf
když to pak zase sloučím příkazem
jar cf circuit.jar *.class
vytvoří to soubor o 14 bajtů menší a nejde spustit.
Co dělám špatně?
V tom manifest souboru je napsáno Created-By: 1.6.0_22 (Apple Inc.)
Já jsem stáhl Javu jdk1.7.0_03 - mohlo by to být jinou verzí?
To nemluvím o tom, jak jsem pracně překládal ty originální .java soubory na výsledný circuit.jar, který také nefunguje, tak jsem to chtěl ověřit rozbalením toho funkčního.
Tak jsem stáhl stejnou verzi jdk1.6.0_22
a zopakoval pokus s rozbalením a sloučním jar souboru, tentokrát má výsledný soubor circuit.jar o 10B méně a zase nejde spustit
a co to pise? Klidne to sem posli jestli to neni velke a podivame se na to. Nemuze to najit Main classu nebo neco takoveho, ne?
Jak jsem napsal o kus níže, vůbec nic to nenapíše.
Program je odtud:
circuit
konkrétně tady: circuit.zip
Zdrojové kódy zde: src.zip
Je to moc pěkný program na simulaci elektronických obvodů - především umí moc hezky (edukativně) animovaně zobrazovat kudy a kam tečou proudy.
Chtěl bych aspoň nastavit výchozí typ rezistorů na evropské a pokud to půjde, doladit i nějaké další věci - třeba ho přeložit i do češtiny.
Tak se zdá, že jsem na to možná přišel, jsem už sice doma, takže nemám nainstalováno vše a nemůžu to tak rychle ověřit, ale právě jsem zkusil ten původní program samostatně a autor zřejmě špatně ošetřil chybějící vstupní soubor - po chvilce nešel spustit ani originální program.
Edit: tak jsem to podstoupil ještě jednou, stáhnul a nainstaloval JDK a bohužel stav trvá.
Když to znovu spojím, program neudělá vůbec nic.
Tak jsem přecejen pokročil.
Když ten výsledný program spustím z příkazového řádku, napíše to:
Failed to load Main-Class manifest attribute from
circuit.jar
Samozrejme ze musis z cmd, jinak neuvidis vypis chyby (a idealne i spoustet programy odsud). A kdyz to rozbalis mas v manifestu radku s Main-Class?
Mám, ale nějak to asi nepobral...
Manifest-Version: 1.0
Created-By: 1.6.0_22 (Apple Inc.)
Main-Class: Circuit
Zkusil jsem to kompletně zadat z příkazové řádky:
jar cfe circuit.jar Circuit *.class
neboli vstupní bod definovat odtud a zdá se že už to jde...
achjo...
Jdu zkoušet překládat zdrojáky...
Tak už to snad funguje...
No člověk se pořád učí...
Díky za nakopnutí...