Program nie działa poprawnie jesli nie jest odpalany przez NetBeansa

0

Witam
Mam programik, w którym na początku pokazuje się okno logowania, jesli odpalam przez NetBeansa to elegancko przechodzi do następnego okna. Logowanie odbywa się poprzez sprawdzenie użytkownika w bazie Oracle. Natomiast jesli odpalam z pliku jar pokazuje się okno logowania, wpisuję login, hasło ale nic się nie dzieje ani nie wyrzuca błędu ani nic. Podejrzewam, że to cos z połączeniem do bazy (baza na Localhost), będę wdzięczny za wszystkie sugestie.

0

Użyj konsoli i komunikatów.

0

Odpal jara z konsoli
java - jar plik.jar
Bo bez stacktrace'a trudno powiedzieć co jest nie tak.

0

No więc próbuję odpalić przez cmd, wchodzę do katalogu gdzie mam jara i wpisuję java -jar System_Rezerwacji.jar a dostaję takie coś:

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: oracle/jdbc/pool/OracleDataSource
        at Logowanie.connect(Logowanie.java:236)
        at Logowanie.polacz(Logowanie.java:195)
        at Logowanie.jPasswordField1KeyPressed(Logowanie.java:150)
        at Logowanie.access$300(Logowanie.java:24)
        at Logowanie$4.keyPressed(Logowanie.java:82)
        at java.awt.Component.processKeyEvent(Unknown Source)
        at javax.swing.JComponent.processKeyEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
        at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)

        at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
        at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
        at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$000(Unknown Source)
        at java.awt.EventQueue$1.run(Unknown Source)
        at java.awt.EventQueue$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue$2.run(Unknown Source)
        at java.awt.EventQueue$2.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: oracle.jdbc.pool.OracleDataSource
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 39 more

Czyli tak jak myslalem cos z połączeniem, ale nie wiem co dokładnie :/

//
Ok już widzę, że ten ODS to jest zewnętrzna biblioteka
import oracle.jdbc.pool.OracleDataSource;
ale dlaczego działa przez NetBeansa a inaczej już nie ?

0

o_O? Przecież masz napisane jak byk że nie może znaleźć klasy oracle.jdbc.pool.OracleDataSource
Jesteś pewien ze dołączyłeś do tego projektu (w sensie wpakowałeś do jara) jara ze sterownikami oracla dla jdbc?
Bo jak ustawiłeś ścieżkę do tego sterownika tylko z poziomu netbeansa to będzie działało tylko tam, bo w twoim stand-alone'owym jarze tego nie ma.

0

Dodałem do Libraries przez "ADD jar" a następnie wziąłem clean & build, a czy do jara to wpakował NetBeans to już nie wiem : O
Jeszcze w razie W dodałem do package i plik ma ~ 1.7 MB więc wygląda na to, że ojdbc powinien tam być

0

Jar to zip, możesz chwilowo zmienić nazwę i obejrzeć co jest w pliku jar.

0

Rozpakowałem i sprawdziłem ze ojdbc jest w jarze, nie wiem w takim razie w czym jest problem

0

Taki, że trzeba go dodać do classpath w pliku MANIFEST.MF ewentualnie wskazać w komendzie uruchamiającej jara - google

0
  1. Mój plik manifest.mf wygląda tak:
Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build

Jak powinien dokładnie wyglądać ?

  1. Próbuję java -jar -google System_Rezerwacji.jar, ale dostaję "Unrecognized option"
0

poczytaj http://introcs.cs.princeton.edu/java/85application/jar/jar.html

a tym -google spowodowałeś pierwszy dziś usmiech na mojej twarzy i za to dzieki : )

0

Jeaaa działa, rzeczywiscie chodziło o Classpath w Manifest.mf, wielkie dzięki :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.