Beziehung System.exit(x) <>Errorlevel

<quote>

hallo forum,
starte für das Mysql den MariaDB 10.3. über das XAMPP-Panel v3.2.2, das im phpAdmin 4.9.0.1 läuft.
als Betriebssystem windows 10. eine frage zum befehl 'System.exit(x)';

public class Errorlevel1
{
public static void main(String[] args)
{
System.out.println("TESTPROGRAMM ERRORLEVEL ");
int t2=13;
System.out.println(t2);
if (t2 == 11)
{System.out.println("angekommen 11 * : "+t2); System.exit(0);}
if (t2 == 12)
{System.out.println("angekommen 12 *: "+t2); System.exit(-1);}
if (t2 == 13)
{System.out.println("angekommen 13 *: "+t2); System.exit(2);}
}
}

starte in der shell das kommando 'echo %ERRORLEVEL%' und erhalte immer den wert 0.
wenn SET aufgerufewn wird um das komplette Environment anzuzeigen ist ERRORLEVEL nicht dabei.

</quote>
 
K

kneitzel

Das sollte genau so funktionieren. %ERRORLEVEL% ist aber eine normale Umgebungsvariable sondern eine spezielle der Shell. Daher wird diese bei set nicht angezeigt.

Wichtig ist, dass es direkt der nachfolgende Befehl sein muss. Also zwischen dem java Aufruf und dem echo %ERRORCODE% darf kein anderer Befehl stehen.

Code:
c:\Projects>java Test

c:\Projects>echo %ERRORLEVEL%
-1

c:\Projects>
Mit Test.java zum Testen einfach mit:
Java:
public class Test {
  public static void main(String[] args) {
    System.exit(-1);
  }
}
Aber natürlich auch mit Deinem Code:
Code:
c:\Projects>java Errorlevel1
TESTPROGRAMM ERRORLEVEL
13
angekommen 13 *: 13

c:\Projects>echo %ERRORLEVEL%
2

c:\Projects>
 
starte für das Mysql den MariaDB 10.3. über das XAMPP-Panel v3.2.2, das im phpAdmin 4.9.0.1 läuft.
als Betriebssystem windows 10. eine frage zum befehl 'System.exit(x)';
Den Zusammenhang müsstest Du bitte erklären: was hat das Starten einer Datenbank mit Deiner Anwendung und dort mit System.exit() zu tun?

starte in der shell das kommando 'echo %ERRORLEVEL%' und erhalte immer den wert 0.
Spontan würde mir einfallen: wichtig ist, dass vor dem Echo nicht noch etwas anderes ausgeführt wird und natürlich die Befehlszeile, die Du zur Ausführung Deiner Anwendung nutzt.
 
Passende Stellenanzeigen aus deiner Region:

Oben