Problem z uruchomieniem pliku jar z poziomu Delphi

0

Witam
Mam następujący problem: posiadam plik DOK.jar który jest poprawny i działa po dwukrotnym kliknięciu. Jest to niewielka aplikacja, która łączy się z bazą danych Oracle. W pliku manifest mam poprawnie ustawione odwołanie do folderu lib w którym mam ojdbc14.jar do połączenia z Oracle. Problem jest gdy wywołuję ten program z poziomu Delphi. Sama aplikacja się uruchamia, natomiast nie następuje połączenie z bazą. Tak jakby nie widział bibliotek z katalogu lib. Ma ktoś może pomysł jak temu zaradzić?? Poniżej kod z Delphi wywołujący mój program DOK.jar:
ShellExecute(self.WindowHandle,'open','javaw','-jar D:\dist\DOK.jar',nil,SW_NORMAL);
Za wszelką pomoc będę wdzięczny
Pozdrawiam

0

spróbuj |-| --- tu spacja
ShellExecute(self.WindowHandle,'open','javaw',' -jar D:\dist\DOK.jar',nil,SW_NORMAL);
lub
ShellExecute(self.WindowHandle,'open','javaw -jar D:\dist\DOK.jar',nil ,nil,SW_NORMAL);

albo WinExec("javaw -jar D:\dist\DOK.jar",True);

o ile masz w system32 plik javaw

0

Niestety żadne z tych rozwiązań nie pomogło...

0

Spróbuj tak:

'javaw -jar -cp nazwa_katalogu_z_libami D:\dist\DOK.jar'

Używaj przejściowo polecenia java (nie javaw), zobaczysz na konsoli komunikaty o błędach.

0

'javaw -cp D:\dist\lib\ -jar d:\dist\DOK.jar' również nie działa. Stosując polecenie 'java' otrzymałem komunikat, że nie może odnaleźć odpowiedniej procedury w folderze C:\Oracle\IC102\ocijdbc10.dll....

Żeby było ciekawiej to wywołując powyższe polecenie bezpośrednio z konsoli Windowsa, wszystko uruchamia się prawidłowo, bez żadnych błędów. Coś muszę dalej mieć nie tak niestety...

0

bezpośrednio z konsoli Windowsa,
Jaki jest wówczas katalog bieżący?

0

Niezależnie od ustawionego katalogu bieżącego (c:, d: czy jakikolwiek folder), aplikacja bezpośrednio z cmd się uruchomi i działa poprawnie

0

Wypróbuj to: wpisz w konsoli polecenie SET, zobacz jaka jest wartość zmiennej środowiskowej CLASSPATH, i to co zobaczysz wpisz po cp

ShellExecute(self.WindowHandle,'open','java -jar -cp %CLASSPATH% D:\dist\DOK.jar',nil ,nil,SW_NORMAL);
0

Zmiennej classpath w systemie nie mam ustawionej

0

Spróbowałem też obejść problem inaczej. Napisałem plik bat który mi uruchamia aplikację DOK.jar. Plik bat działa poprawnie bo po jego uruchomieniu, zostaje również otworzona aplikacja DOK.jar. Uruchamiam tego bata z poziomu Delphi. O ile wcześniej (odwołując się bezpośrednio do pliku DOK.jar) pojawiało się okno logowania, ale nie można było ustanowić połączenia, tak teraz pojawia się tylko błąd Java Virtual Machine o treści ERROR: Unable to access jarfile DOK.jar. Co jest źle??

0

Co jest źle??

Bieżący katalog jest zły, ustaw taki sam jak w batchu i wywołuj tym samym poleceniem i ma działać.. A jak nie działa to pewnie masz źle jave zainstalowaną.
Btw. mi się wydaje że to jest bardziej pytanie do programistów java. bo do delphi niewiele w sumie ma.

1 użytkowników online, w tym zalogowanych: 0, gości: 1