Hvis ikke jeg skriver "proc.waitFor()" i main-tråden (i programmet) går mit program mens jeg spiller, eller når jeg lukker spillet. Puttes det i en tråd for sig selv, hvor jeg også skriver "proc.waitFor()" går programmet ned på samme vis.
Hvad går der galt og hvordan undgår jeg det? Kan jeg eventuelt starte spillet på anden vis??
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
An unexpected exception has been detected in native code outside the VM. Unexpected Signal : EXCEPTION_ACCESS_VIOLATION occurred at PC=0x0 Function=[Unknown.] Library=(N/A)
NOTE: We are unable to locate the function name symbol for the error just occurred. Please refer to release documentation for possible reason and solutions.
Current Java thread: at sun.awt.windows.Win32OffScreenSurfaceData.nativeDispose(Native Method) at sun.awt.windows.Win32OffScreenSurfaceData.dispose(Unknown Source) at sun.awt.windows.Win32OffScreenSurfaceData.finalize(Unknown Source) at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method) at java.lang.ref.Finalizer.runFinalizer(Unknown Source) at java.lang.ref.Finalizer.access$100(Unknown Source) at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)
Hvorfor må dit program ikke være låst imens du spiller? Hvis det ikke må, kan du jo bare køre programmet i en ny tråd - eks:
class ProgramExecution implements Runnable{ Runtime rt; String path;
public ProgramExecution(Runtime rt, String path){ this.rt=rt; this.path=path; }
public void run(){ rt.exec(path); proc.waitFor(); System.out.println("Program execution:\n\t"+path+"\nHas now ended"); } }
Denne class skal du så bruge i din hovedclass således:
... ProgramExecution CStrikeExec=new ProgramExecution(Runtime.getRuntime(),"D:\\Half-Life\\cs.exe -game cstrike"); Thread t=new Thread(CStrikeExec); t.start(); ... //Herefter fortsætter dit program SAMTIDIGT med at spillet kører
Jeg har dog foroven skrevet: "Puttes det i en tråd for sig selv, hvor jeg også skriver "proc.waitFor()" går programmet ned på samme vis. " - svar ikke accepteret, jeg kan jo ikke bruge det til noget. Jeg lader ement stå åbent lidt, hvis der skulle komme nogle flere ideer.
Hvis jeg starter programmet på følgende måde:
rt.exec("cmd /c "+path); (win32)
kommer samme exception: EXCEPTION_ACCESS_VIOLATION (som resulterer i rigtig mange søgeresultater på google)
Forskellen er, at JVM skriver hvad årsagen er. Årsagen har noget at gøre Graphics2D klassen i AWT. Det er en bug Sun selv har skrevet skulle være fixet fra JDK 1.4.0, men det er den åbenbart ikke.
det er en MEGET normal bug under 1.4.0_01, som er den nyeste (og alle andre 1.4.*). JVM crasher simpelthen når en hvilken som helst application går i Fullscreen.
Puttes det i en tråd for sig selv, hvor jeg også skriver "proc.waitFor()" ...
:)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.