kolejny raz classpath

0

Witam,

Uzywam Netbeans. Napisalem program ktory:
1)uzywa klasy RawMemoryAccess
2)uruchamia nowy watek
3)nowy watek chce uzyc klasy RawMemoryAccess ale poajwia sie: java.lang.NoClassDefFoundError: javax/realtime/RawMemoryAccess

jak uruchamiam glowny program z linii komed to wysypuje sie w punkcie 1.

Wniosek jest taki ze NetBeans wie gdzie jest klasa RawMemoryAccess a system nie. Problemem jest to ze ja tez nie wiem gdzie ta klasa jest.

Teraz pytanie wlasciwe: Jak skopiowac classpath NetBeansa do systemu, lub jak podejrzec classpath NetBeansa zeby wywniskowac gdzie ta klasa sie znajduje.

1)Ustawilem systemowe CLASSPATH tak jak to w netBeans. Zrobilem to tak ze znalazlem sciezki do plikow *.jar i dodalem je do CLASSPATH. Jednak to nie pomoglo. blad nadal byl taki sam.
2)podczas uruchamiania nowego watku przy pomocy Process.exec uzylem opcji -cp (wklejajac caly CLASSPATH)
3)Pojawil sie nowy blad:

Exception in thread "main" java.lang.UnsatisfiedLinkError: registerNatives
at javax.realtime.RawMemoryAccess.registerNatives(Native Method)
at javax.realtime.RawMemoryAccess.<clinit>(RawMemoryAccess.java:1682)

jesli uruchamiam program glowny z linii komend to dostaje taki sam komunikat.

Podsumowywujac jesli uruchamiam program przez NetBeans to dziala on poprawnie, a jak z linii komend to sie sypie. musze dojsc w czym rzecz bo musze uruchamiac nowe procesy, a nowe procesy sa traktowane jak uruchamiane z linni komend

Dziekuje za wszelkie wskazowki i Pozdrawiam

0

a probowales podpisac go certyfikatem moze potrzebny jest? ja mialem taki problem z socketem

0

Register natives to jest blad mowiacy ze program uzywa dll / so czy innego cuda, i nie moze ich znalezc. Jest osobna sciezka, -Djava.library.path cz cos takiego, gdzie wskazujesz katalogi ktore maja dll.

0

Gdzies na dnie tego problemu pewnie lezala jakas dynamiczna biblioteka. Znalazlo sie jednak latwiejsze rozwiazanie. Okazalo sie ze uruchamiajac program NetBeans nie korzystal ze standardowej maszyny javy. Natomiast uruchamiasac watek poprzez exec do systemu prezkazywanae bylo polecenie uruchomienia programu, a system uzywal standardowej maszyny. Po odpowiednim zmodyfikowaniu PATH moge uruchamiac program z linii komed-dalej nie dziala jak powinien ale to inna historia :D.

Co ciekawe NetBeans/System nie do konca zareagowal na zmiane PATH - uruchamiajacprogram poprzez NetBeans polecenie exec nadal powoduje uruchomnienie standardowej javy. Byc moze temu ze PATH zmieniam nie pernamentnie tylko do ponownego uruchomienia systemu - nie moge znalezc pliku konfiguracyjnego w Solarisie. Tak czy inaczej problem nieco zalagodzony, programy musze testowac w terminalu ale mysle ze jakos przezyje. Chyba ze ktos ma jakie spomysly.

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