Jak spustit JavaCC

Od: Datum: 03.01.14 22:57 odpovědí: 19 změna: 06.01.14 09:48

Dobrý den. Mám za úkol napsat referát o tom, jak funguje parser JavaCC. Bohužel se mi jej nedaří spustit nebo spíše vůbec nevím jak ho správně spustit. Když totiž spustím .jar file v /bin/lib tak se nic nestane. Jak jinak tento parser spustit jsem bohužel nezjistil. Kdybyste mi mohl někdo pomoci a napsal mi stručný návod, byl bych vám opravdu vděčný.

Slávek Křišta


Seznam odpovědí:
 
moment čekejte prosím, probíhá přenos dat...
Zobrazení struktury odpovědí v otázce
Skrytí struktury odpovědí v otázce
Zobrazení struktury odpovědí v otázce

 

Odpovědi na otázku:
Datum: 04.01.14 00:07

vytvoril bych si na zacatek Batch soubor nekde v Dokumentech a upravil ho treba takto :

java
pause

potom bych ho nakopiroval do adresare Javy .../bin (u me c:Program Files (x86)Javajre7bin)
a zde spustil. Dosatnu vypis parametru volani Javy

nasledne bych vytvoril dalsi batch soubor a v nem

java -jar nazev.jar
pause

tim se to otestuje
Predpokladm, ze batch soubor znas: vytvorim TEST.txt soubor s obsahem viz vyse a prjmenuji na TEST.bat
Je to jen pro otestovani funkcnosti, jinak se to resi jinak. Ale snad na zacatek :)

Ohodnoceno: 2x
 
Od: slavekkrista*
Datum: 04.01.14 10:52

S .bat souborem sice pracuji poprvé, ale spustit jej nebyl problém.

java test proběhl vpořádku

test mého .jar (tedy .jar souboru z javacc-6.0) souboru napsal to, co je na obrázku - tedy že v něm chybí main (spouštěcí) třída...

Když jsem ještě hledal nějaké návody, nalezl jsem u instalace toto: Once you have completed installation, add the bin directory within the JavaCC installation to your path. The javacc, jjtree, and jjdoc invocation scripts/executables reside in this directory. (Instalace byla pouze unzip) - Bohužel nevím, co tím autor přesně myslí...

Od: slavekkrista*
Datum: 04.01.14 10:56

Oprava obrázku:

http://2imgs.com/a42f2f05d6

Datum: 04.01.14 11:51

Stahnete si 7-zip a po spusteni v nem pokepanim editujte soubor jar. Mela by v nem byt sekce META-INF a MANIFEST.MF

Ohodnoceno: 0x
 
Od: slavekkrista*
Datum: 04.01.14 12:11

Ano. javacc.jar jsem si otevřel v AltapSalamandru (stejné jako 7-zip). Soubor MANIFEST.MF tam je. Co bych měl udělat nyní?

Datum: 04.01.14 14:53

Asi uz je na case otazka, v jakem prostredi tvoris? Pokud v Eclipse, tak aby sel spustit jar tak, jak popisuji, tak je nejjednodussi ho vyexportovat jako Runnable JAR a napr volbou Package required libraries into generated jar

doplněno 04.01.14 15:28:

pro vypis parametru pro javacc
do batch souboru napsat

java -cp javacc.jar javacc
pause
Ohodnoceno: 0x
 
Od: slavekkrista*
Datum: 04.01.14 15:34

Pracuji v prostředí NetBeans IDE 7.2.1 nebo novější... Bohužel v tomto prostředí nevím jak .jar soubor spustit. Umím ho zde otevřít pouze jako složku se soubory. Pracoval jsem také s prostředním BlueJ, ale ten nevím, jestli by byl pro tento problém lepší.

Datum: 04.01.14 15:38

a ten bach soubor co jsem doplnil v doplnku, ten funguje?

Predpokladam, ze ukolem je popsat moznosti (parametry viz obr)

Ohodnoceno: 2x
 
Od: slavekkrista*
Datum: 04.01.14 15:59

Ano, ten funguje. Výpis je skoro stejný: http://2imgs.com/63585872a1

Datum: 04.01.14 16:12

takze ukol : jak funguje znamena, bud to z parametru vypsat a odzkouset v cmd modu nebo javacc integrovat do pouzivaneho editoru.
U me konkretne pro Eclipse :
http://sourceforge.net/projects/eclipse-javacc/

Ohodnoceno: 0x
 
Datum: 04.01.14 16:20

Já našel k NetBeans toto: http://plugins.netbeans.org/plugin/20277/javacc Avšak jak to nějak nacpat do NetBeans nevím... A s vaším programem bohužel vůbec neumím. Je mi hlavně divné, že ten .jar soubor nejde normálně spustit a píše chybu u toho manifestu, i když tam je...

Ohodnoceno: 0x
 
Datum: 04.01.14 16:44


java _cp nebo java -jar


Pod -cp to jde protoze :

-cp má menší nástrahy ("classpath").Druhý vyžaduje spustitelný jar soubor a classpath pro danou aplikaci musí být definován v manifestu jar (všechny ostatní classpath manifest budou ignorovány ...). Takže s druhou verzí byste se podívat do JAR, přečtete manifest a tak zjistit, zda jsou položky Classpath jsou platné od místa, kde je uložen jar ... To je zbytečné.
Ohodnoceno: 0x
 
Datum: 04.01.14 17:01

Možná trochu chápu... V manifest mám napsáno toto:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.2
Created-By: 1.7.0_21-b02 (Oracle Corporation)
doplněno 04.01.14 22:10:

No, tak chápu to, že tam asi něco chybí. Co dělat s -jar nebo -cp nevím...

Ohodnoceno: 0x
 
Datum: 05.01.14 15:24

Našel jsem ještě tohle video. Řídil jsem se podle něho, ale bohužel spuštění tam už pak ukázáno není. Spustit to pomocí toho .bat souboru, co jste mi psal to i tak nejde...

doplněno 05.01.14 15:35:

Video:


A povedlo se mi sprovoznit toto: http://2imgs.com/837a7a5083

Co to znamená přesně nevím. V javacc-5.0 je to .bat soubor javacc s příkazem:


@echo off

java -classpath "%~dp0libjavacc.jar;%~dp0libjavacc.jar;%~f0..libjavacc.jar" javacc %1 %2 %3 %4 %5 %6 %7 %8 %9
pause
Datum: 05.01.14 17:06

to co je popsano ve videu je doplneni definice PATH - cesty k relativnimu volani prikazu. Tzn., aby nebylo nutno definovat uplnou cestu (PATH) k casto pouzivanym prikazum, tak se dodefinuje PATH v promennych systemu. V tomto pripade volani Javy. Vyhody jsou viz vyse popsano, nevyhody, ze pokud chci Javu odjinud, tak bude volana vzdy ta z PATH vyjma pripadu, ze stojim primo v adresari volaneho prikazu. Takze bude-li mi chybet v aktualnim adresari nejaka soucast Javy, tak se bude pouzivat ta z PATH. To muze vest k spatne prenositelnym nastavenim.

Ohodnoceno: 0x
 

 

Datum: 05.01.14 19:58

Aha. Takže bych to měl spíše vrátit z5 a zkoušet to řešit dále jinak...?

 
Datum: 05.01.14 21:01

Rekl bych, ze zatim nechat, at se to da nejak pouzivat bez hledani vselijakych knihoven. Pri distribuci se to musi ohlidat jinak. Potom se clovek diva na knihovny od kud jsou brane (je tam videt cesta).

Ohodnoceno: 0x
 
Datum: 06.01.14 08:14

Amohl bych se zeptat - Vy jste JavaCC spustil jak? Co vše jste musel nastavit?

doplněno 06.01.14 09:46:

Mě už se tedy povedlo sprovoznic příkaz javacc v cmd. Kde jsem tedy pomocí příkazu javacc Simple1.jj vytvořil "nové soubory", poté je převedl na .java pomocí javac *.java. Konečná struktura má pak být java Simple1

 
Datum: 06.01.14 09:48

Mě už se tedy povedlo sprovoznic příkaz javacc v cmd. Kde jsem tedy pomocí příkazu javacc Simple1.jjvytvořil "nové soubory", poté je převedl na .java pomocí javac *.java. Konečná struktura má pak být java Simple1 - Zde jsem se bohužel opět zarazil, protože si nejsem jistý co je co. Podle mě by mělo být Simple1 lexicon a NĚCO to, co se lexiconem kontroluje. Je to tak?

 

 

 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz

 
Copyright © 2004-2016 Poradna Poradte.cz. Všechna práva na poradně Poradte.cz vyhrazena.