# DOS Konsole ausblenden



## jean luc (8. November 2004)

Hallo,
ich habe ein Java Programm geschrieben und möchte es nun ganz normal aus der DOS Konsole mit der javaw.exe starten. Gibt es eine Möglichkeit dabei die Konsole auszublenden, so dass man diese im Hintergrund nicht mehr sieht? 
Das sieht so nämlich etwas unschön aus.
Gruß
SIMON


----------



## schnuffie (8. November 2004)

Batch-Datei statt offene Konsole.


----------



## jean luc (8. November 2004)

Hallo,
das habe ich probiert:
java -cp .;... volleyball_trainer.VB_Start

Aber es startet dennoch einen DOS Box. In der steht dann die Startanweisung und bleibt im Hintergrund bestehen.

Gruß SIMON


----------



## Vincentius (8. November 2004)

Hallo,

mit dem *start*-Befehl von Windows müsste es gehen. Einfach

```
start javaw -cp... usw
```
in eine Batch-Datei eintragen und ausführen. Du kannst es alternativ auch in einer Verknüpfung eintragen unter "Ziel", dann ist es noch "benutzerfreundlicher". 

Gruß
Vincent


----------



## stevg (12. November 2004)

Hi, ich habe das mal mit dem 'start' getestet und er hat mir nur das "start java xyz" in einer endlos schleife ausgegeben.


----------



## jean luc (12. November 2004)

Hallo, 
bei mir ging es auc nicht mit "start". Aber es klappt wunderbar das ganze als Verknüpfung mit Ziel zu machen.


----------



## stevg (12. November 2004)

Bei ner Verknüpfung kann man aber nur  den absoluten Pfad angeben, oder?


----------



## torsch2711 (12. November 2004)

Also ich versteh zwar nicht was ihr macht, aber es funktioniert mit start eigentlich alles ganz gut.

kommando auf Dos

start javaw test
(oder halt start java test, falls du commandline(auf einer neu aufgemachten Dosbox) einträge sehen willst (sprich du gibst auf dem stderr was aus))

(test öffnet bei mir ein JFrame mit einem Titel mehr nicht.)

öffnet bei mir ein JFrame ohne die Dosbox weiter zu blockieren.



Thats it.

Wie schaffst du es eigentlich das die DosBox in einer endlosschleife start javaw test immer wieder ausgibt? (ausser natürlich selbst eine endlosschleif programmiert zu haben) 


Egal, es sollte aber wie Vincentius es vorgeschlagen hat funktionieren.


@stevg:
du kannst der Verknüpfung auch einen Pfad mitgeben, der als ausführbarer Pfad angesehen wird, von dort aus kannst du dann auch relativ operieren. 

sprich du kannst in deine verknüpfung eintragen "start javaw test", wenn du im ausführen in: den pfad zu deiner test-klasse eingegeben hast.

Viel Erfolg.

Grüsse

Torsten.


----------



## ffnet (12. November 2004)

Gut. Dann funktioniert ja alles


----------



## torsch2711 (12. November 2004)

ffnet hat gesagt.:
			
		

> Gut. Dann funktioniert ja alles




was ist das denn für ein statement?

Vielleicht solltest du mal genauer lesen: ich bin nicht der fragesteller!


----------



## stevg (13. November 2004)

hehe, bei mir hing die Entertaste fest.
So weit ist dann jetzt alles klor.


----------



## jean luc (13. November 2004)

Hallo,
nun möchte ich das ganze aus einer bat-Datei starten.
Gibt es die Möglichkeit den Pfad der javaw.exe in einer bat-Datei irgendwie relativ anzugeben? Da ich aus verschiedenen Gründen die PATH Variable nicht eingetragen habe.


----------



## Vincentius (15. November 2004)

Hallo,

füge am Anfang Deiner Batch-Datei folgende Zeilen ein:

```
set PATH=[hier Pfad zu Deiner JRE]\jre\bin:%PATH%
set JAVA_HOME=[hier Pfad zu Deiner JRE]\jre
```

Gruß
Vincent


----------



## torsch2711 (15. November 2004)

hmmm, nicht das ich wüsste. Ich würde schätzen, das Windows intern auch mit einer Variablen ähnlich dem PATH arbeitet und einfach nur davor setzt beim ausführen.
Kannst ja einen eigene Variable deklarieren und immer davor setzen. Bsp:

SET TEST="c:\test"

start javaw %TEST%\test


Ich denke du kommst nicht drumherum so zu arbeiten.


Grüsse

Torsten.


----------



## gerhardKoc (15. November 2004)

Hey,
schreib Dir folgendes Script und führ das dann mal aus: ( Endung der Datei .vbs )
 (  C:\deinprogramm.bat => Hier sollte der Pfad zu Deiner alten Batchdatei stehen  )


Const swHide = 0

Set wshShell = CreateObject ("WScript.Shell")

wshShell.Run "%COMSPEC% /C C:\deinprogramm.bat", swHide


----------



## ToMeFox (13. Dezember 2004)

*Hi!*

Ich denke das Thema ist ein alter Hut aber ich hatte Anfangs das gleiche Problem!

Zum einen: Wenn einer schreibt 

[java HalloWelt]  : dann geht er davon aus, dass euer Betriebssystem diesen Befehl (java) kennt. Meißt schauts bei Anfängern anders aus    bei mir wars zumindest so!

Um dem Betriebssystem diesen Befehl bekannt zu machen, muss er (bzw. sein Pfad) in den
Systempfaden sein. Unter Windows erreicht ihr das indem ihr
set PATH=%PATH%;C:\Programme\Java\jdk1.5.0\bin; (oder wo auch immer euer
Java Dev Kit liegt) eingebt. Dies könnt ihr auch über die Systemeigenschaften und die dort
befindlichen Umgebungsvariablen einstellen. (Rechte Maustaste auf Arbeitsplatz... ihr werdets schon finden)

Danach könnt ihr dann eingeben

javac HalloWelt.java (compilieren)

java HalloWelt (ausführen)

.... falls ihr einen Klassenpfad angeben müsst, liegt das daran, dass ihr Libraries oder Klassen anderer Javaprogramme einbinden müsst...

                   Klassenpfad                                                     Startklasse
Bsp.  java   -classpath linux.fun.zt.net;des.kann.net.sein    linux.fun.zt.net.HalloWelt  "argumente"  "von mir aus auch mehr als eins"

Selbes spiel bei JARs

Bsp:
                         Klassenpfad           Startklasse
java -classpath hund.jar;katze.jar;.   tiere.start.Mainklasse

der "." besagt, dass die Virtuelle Maschine (VM) auch im aktuellen Verzeichnis
suchen soll. ".." ist das übergeordnete Verzeichnis.

Beispiel einer Stapelverarbeitungdatei: (Windows)

public class HalloWelt
{
  public static void main(String args[])
   {
      System.out.println("Hallo Ich bin da!");
   }
}

Name --> KompiliereUndStarteMeineHalloWeltKlasse.bat

Inhalt:

javac HalloWelt.java

java HalloWelt

es ist auch möglich:

c:\Programme\jdk\bin\javac HalloWelt.java
c:\Programme\jdk\bin\java HalloWelt

Wenn es Fehler in meiner Hilfe gibt... bitte melden! Ich lerne gerne!

Gruß Torsten


----------



## ToMeFox (13. Dezember 2004)

Da fällt mir noch ein   

Falls ihr eine Java - Klasse schreiben wollt, die eine oder mehrere andere ausführbare 
Programme oder auch andere Java-Programme starten soll... 
(Bei Server-Client-Anwendungen ganz sinnvoll!)

import java.lang.Runtime;
import java.io.IOException;

public class Starter
{
try
{
  Runtime.getRuntime().exec("java HalloWelt");
  Runtime.getRuntime().exec("c:/spiele/doomIII.exe");
  /**
    usw---> einfach alle ausführbaren Dateien können so gestartet werden...
    und gepaart mit einer Stapelverarbeitungsdatei... ein kurzes aufzucken einer Dosbox und dann     nur noch deine Applikation!
  */
}
catch(IOException io) 
{
  io.printStackTrace();
}
}


----------

