Ik vraag me af of er een statement is om de "Java Virtual Machine" met een statement te kunnen resetten... Ik werk namelijk met een DLL die telkens geladen moet worden als er een object wordt aangemaakt. Die DLL staat in Java door middel van een klasse "zonder code"
DLL's roep je in de JVM normaal aan met de external procedures.
Praat je hier over een echte external dll, of over een gelinkte dll in de jvm van sun ?
Praat je hier over een echte external dll, of over een gelinkte dll in de jvm van sun ?
Backup not found (R)etry (A)bort (P)anic<br\>AMD 3400+ 64, 2 GB DDR, 1,5 TB Raid5
Het is een DLL die een seriële poort aanstuurt, en die staat helemaal los van de JVM. De DLL heeft er niets mee te maken, maar ik wil weten of een reset dmv een statement in een klasse kan...
Het resetten van de VM lijkt me niet zomaar mogelijk. Daarnaast snap ik eigenlijk je probleem niet. Ik vermoed dan ook dat je de oplossing van je probleem in compleet de verkeerde richting aan het zoeken bent. Zou je je prbleem iets uitgebreider kunnen omschrijven?
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Net zoals Janoz zegt, lijkt me het restarten van de JVM een vrij vreemde "oplossing", aangezien dan ook de aanroepende code (jouw programma) weg is. Het lijkt me ook erg sterk dat er een commando voor is.
Wat is je probleem dan? Want volgens mij ben je naar de verkeerde oplossing aan het zoeken.
Wat is je probleem dan? Want volgens mij ben je naar de verkeerde oplossing aan het zoeken.
Fat Pizza's pizza, they are big and they are cheezy
Mijn probleem gaat helemaal buiten de DLL om... De DLL hoort niet bij het probleem.
Mijn vraag is alleen of je de VM kan resetten door in je Javacode een methode aan te roepen. Zo wil ik dat als ik in mijn GUI op de knop afsluiten druk, dat dan de VM wordt gereset. Nu gebeurt dat door middel van System.exit(0);
Mijn vraag is alleen of je de VM kan resetten door in je Javacode een methode aan te roepen. Zo wil ik dat als ik in mijn GUI op de knop afsluiten druk, dat dan de VM wordt gereset. Nu gebeurt dat door middel van System.exit(0);
Maar de vraag blijft staan: wat is nu precies je probleem waarvoor een herstart van de JVM nodig is? Ik weet dat je dit waarschijnlijk niet wilt horen en gewoon een oplossing voor het herstarten van de JVM wil hebben maar als je een herstart van de JVM nodig hebt lijkt dat voor ons een vreemde / radicale oplossing dat we erg graag de redenering hierachter willen weten en kijken of we niet een andere oplossing kunnen bedenken.
Ik denk overigens niet dat je de JVM zomaar kan herstarten vanuit stuk Java code zelf. Je kan dan beter een stukje shellcode / batch script o.i.d. aanmaken wat de JVM start in een loop en wacht totdat de JVM beeindigt is en zo deze weer opnieuw start.
Ik denk overigens niet dat je de JVM zomaar kan herstarten vanuit stuk Java code zelf. Je kan dan beter een stukje shellcode / batch script o.i.d. aanmaken wat de JVM start in een loop en wacht totdat de JVM beeindigt is en zo deze weer opnieuw start.
"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney
Ik heb een project waarmee ik een slagboom via een seriele poort moet aansturen. Als grondbeginsel van dit project hebben we een dll gehad (die niet door ons geschreven is) en die DLL stuurt de slagboom aan. Deze DLL wordt aangeroepen in Java door een klasse waarvan je de Source niet kan zien. (leraren he
)
Als je nu een wijziging aangebracht hebt in je eigen gemaakte code (die in hetzelfde project staat als de DLL-aansturing) moet je eerst helemaal de VM resetten omdat je anders een error krijgt met: cannot open the source of this class
Daarom wil ik weten of er een statement is die ervoor zorgt dat de VM wordt gereset.
Als je nu een wijziging aangebracht hebt in je eigen gemaakte code (die in hetzelfde project staat als de DLL-aansturing) moet je eerst helemaal de VM resetten omdat je anders een error krijgt met: cannot open the source of this class
Daarom wil ik weten of er een statement is die ervoor zorgt dat de VM wordt gereset.
Misschien wil je je veranderde klasse opnieuw inladen met behulp van een/de classloader (zie bv dit voorbeeld, maar meestal is het toch het meest logisch om je programma opnieuw te starten als je iets hebt veranderd in je code.
How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.
Als je een IDE gebruikt, dan kun je in debug mode wel de code hot-replacen, zonder de VM te moeten "resetten". Maar anders is het vrij normaal om de VM te herstarten wanneer je de javacode hebt gewijzigd
Hiermee moet je ontzettend oppassen want dit werkt niet in elke jvm.zwippie schreef op maandag 17 april 2006 @ 16:11:
Misschien wil je je veranderde klasse opnieuw inladen met behulp van een/de classloader (zie bv dit voorbeeld, maar meestal is het toch het meest logisch om je programma opnieuw te starten als je iets hebt veranderd in je code.
Sommige jvms (IBM) gooien deze melding gewoon weg en halen hem weer uit de cache.
Backup not found (R)etry (A)bort (P)anic<br\>AMD 3400+ 64, 2 GB DDR, 1,5 TB Raid5
Pagina: 1