windows - java app hænger, når det ikke køres fra kommandolinjen

Indlæg af Hanne Mølgaard Plasc

Problem



I Windows 7, når jeg dobbeltklikker på min .jar-fil, kører appen delvist og derefter hænger. Når du kører med java -jar MyFile.jar eller javaw -jar MyFile.jar på kommandolinjen, kører det dog fint. Det går også fint på Linux-mint, når du bruger GUI'en til at køre den. Er der nogen måde jeg kan debug dette? (helst ved anvendelse af formørkelse)





Okay. Jeg har muligvis indsnævret det. Når jeg skriver en simpel testapp:


import javax.swing.JOptionPane;


public class MyDebug {
    private static void err(String message){
        JOptionPane.showMessageDialog(null,message);
    }
    public static void main(String[] args){
        err("test");
    }


Programmet kører fint i kommandolinjen ved hjælp af javaw, men når man forsøger at køre fra desktop-java varsler jeg, at den 'Kunne ikke finde hovedklassen: MyDebug. Programmet vil afslutte.'





Jeg har muligvis indsnævret det endnu længere Når du starter fra skrivebordet, bruges 32-bit versionen af ​​javaw, og når du starter fra kommandolinjen, bruges 64-bit versionen.


LØST
Jeg løste problemet ved at gå til programmer og funktioner i kontrolpanelet, afinstallere java og geninstallere det. Kan ikke svare på mit eget indlæg endnu

Bedste reference


@Benny Han gav mig en god ide (+1). Prøv at køre javaw -jar MyFile.jar i stedet for java -jar MyFile.jar fra kommandoprompten.
Jeg tror, ​​at din ansøgning vil hænge op nøjagtigt som det sker, når du kører det ved at dobbeltklikke på jarfil. I dette tilfælde bruger den mulige årsag STDIN eller STDOUT i dit program. Husk: De eksisterer ikke, når du bruger javaw.

Andre referencer 1


I dit Windows-miljø skal du kontrollere kommandoen java og javaw. Når du dobbeltklikker på jarfilen, er det kommandoen javaw kører jarfilen. Jeg tror det måske fordi du har installeret mere end en jre.

Andre referencer 2


Prøv at lancere via et script ..


echo "started from \%cd\%"
set scriptroot=\%~dp0\%

java -version
echo \%path\%

java -jar \%scriptroot\%MyFile.jar

echo "press any key  to continue"
pause 


Kom så tilbage med java-version, undtagelse osv.