[ Tulex @ 20.03.2008. 09:54 ] @
Znam da je mnogo pisano o jar fajlovima, o njihovom kreiranju itd. ali na ovakav problem jos nisam naisao.

Koristim Eclipse Europa i imam aplikaciju koja radi sa MySQL bazom i sasvim lepo radi iz Eclipse-a.
U projektu imam Manifest.mf koji je korektno podesen, imam putanju do main klase, classpath do drajvera koji ce se nalaziti u istom folderu kao i jar moje aplikacije.
Export-ujem projekat u jar fajl koristeci manifest.mf iz projekta i smestim ga u neki folder zajedno sa drajverom i fajlom DBConnection.conf u kom su mi podaci o konekciji.
Problem je sto mi sve to fino radi na mojoj masini, ali nece na drugima. Tacnije aplikacija krene (sto znaci da vidi main class), prikaze splashscreen koji sam ubacio i prikaze prvu formu za logovanje korisnika. I ako pri logovanju nesto nije uredu (ne vidi driver ili konfiguracioni fajl) prijavi mi gresku. Ako namerno unesem pogresne podatke, korektno mi javi da nema takvog korisnika u bazi.
Ali ako unesem sve korektno aplikacija stane, tj. ugasi se forma za logovanje, splashscreen treba da nestane i da se pojavi glavna forma, ali to se ne desava.
Kuci mi sve radi, na drugoj masini nece (tacnije na nekoliko drugih masina), a aplikacija se ipak pokrene u startu (znaci podesavanje jave je ok).

Bilo kakva pomoc je vise nego dobrodosla.
[ augustus @ 20.03.2008. 10:02 ] @
Sta kaze log? Daj da vidimo sta pise u log-u pa mozda i nadjemo u cemu je problem.
[ Tulex @ 20.03.2008. 10:23 ] @
nisam siguran gde java loguje svoje aktivnosti. Ako uopste ista i loguje, jer u eclipse ja ne dobijam nikakav exception.
[ augustus @ 20.03.2008. 10:33 ] @
Uh...

Probaj ovako, ako nisi siguran da imas vremena sam da izlogujes aplikaciju i da podesis logere(za ubuduce nauci ovo raditi), uzmi ispisuj na konzoli korako kroz koje apliakcija prolazi. I lepo kad startujes na nekom od kompova vidi dokle je ispisao kad je stao pa istrazi problem.

Meni ovo lici na problem sa bazom. Mozda ne moze da se nakaci na bazu (preveri da li je conncetion string validan).
[ Tulex @ 20.03.2008. 10:47 ] @
Hvala ti na brzom odgovoru. Nisam logovao aplikaciju...znam da je trebalo, ali nisam jos familijaran sa tim.
Odlicno si se setio ovoga sa ispisom na konzolu. Inace ne verujem da je problem sa bazom jer baza reaguje na logovanje.
Ako unesem pogresne podatke baza dobijem nazad praznu tabelu i korektno mi se ispise poruka, ali ako unesem tacne podatke, onda se ovo desava.
Znaci rezulatat query-ja nije prazna tabela.

Probacu ovo sa ispisivanjem na konzolu pa se javljam.

Hvala jos jednom.
[ Tulex @ 20.03.2008. 11:36 ] @
Evo greske:
Code:

Forma za logovanje startovana
Layout podesen
Konekcija prosla
Exception in thread "main" java.lang.InternalError: Failed to invoke main method

        at mainForm.SplashWindow.invokeMain(SplashWindow.java:208)
        at mainForm.Splasher.main(Splasher.java:22)
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at mainForm.SplashWindow.invokeMain(SplashWindow.java:206)
        ... 1 more
Caused by: java.lang.IllegalArgumentException: defaultCloseOperation must be one
 of: DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE, or DISPOSE_ON_CLOSE
        at javax.swing.JDialog.setDefaultCloseOperation(Unknown Source)
        at mainForm.MenuFrame.main(MenuFrame.java:1588)
        ... 6 more



InternalError: Failed to invoke main method exception izazvan posto splasher nije uspeo da pokrene moju main klasu.
Kao parametar dobija putanju do nje u okviru projektam, a to je mainForm.MenuFrame. mainForm je paket u projektu, MenuFrame je naravno klasa sa main metodom.

Deo koda gde puca:

Code:

public static void invokeMain(String className, String[] args) {
        try {
            Class.forName(className)
            .getMethod("main", new Class[] {String[].class})
            .invoke(null, new Object[] {args});
        } catch (Exception e) {
            InternalError error = new InternalError("Failed to invoke main method");
            error.initCause(e);
            throw error;
        }
    }


className = mainForm.MenuFrame, a args je prazan (i treba da bude prazan).
Zakljucak je da u okviru eclipse moze da pokupi instancu ove klase, a van eclipse puca.

Da li neko zna zasto?
[ augustus @ 20.03.2008. 11:43 ] @
Code:
Caused by: java.lang.IllegalArgumentException: defaultCloseOperation must be one
 of: DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE, or DISPOSE_ON_CLOSE


Da li si ovo probao?
[ Tulex @ 20.03.2008. 12:10 ] @
neverovatno....
U pravu si, bila je opcija JDialog.EXIT_ON_CLOSE, sto inace deluje sasvim ok. Ta opcija postoji naravno, a i eclipse se nije bunio...
Ali jar je pravio problem.

Hvala ti puno. Bio si mi zaista od velike pomoci. Ko zna kad bi (i dali bi uopste) resio problem bez tebe.

Thanks