You are not logged in.

  • Login

Dear visitor, welcome to Coder Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Wednesday, March 25th 2009, 9:30pm

Programm aufrufen und dann sich selbst beenden

Hallo,

ich hab grad ne Blockade: ich möchte gerne ein anderes Programm aufrufen. Mein Java-Programm soll allerdings nicht warten, bis das aufgerufenen Programm beendet worden ist...

2

Wednesday, March 25th 2009, 9:49pm

und wenn du einfach einen Thread erzeugst, der dann das externe Programm aufruft? Dann kann der main-Thread beendet werden. Theoretisch :-D

3

Wednesday, March 25th 2009, 11:50pm

und wenn du einfach einen Thread erzeugst, der dann das externe Programm aufruft? Dann kann der main-Thread beendet werden. Theoretisch :-D


Nein, leider nicht...

4

Friday, March 27th 2009, 5:51pm

Moin,

Habe das grad mal mit einem Process getestet:

Java Quellcode

1
new ProcessBuilder("C:\\\\Pfad\\zur\\Datei.exe").start();

Nach Aufruf dieser Start-Methode für den Prozess kann das Java-Programm beendet werden.
Der Prozess bleibt aber bestehen, zumindest bei mir unter Vista.

Gruß,
Puni

[1. EDIT]Ergänzung hinzugefügt.
[2. EDIT]Code angepasst.

This post has been edited 3 times, last edit by "Puni" (Mar 27th 2009, 5:58pm)


5

Saturday, March 28th 2009, 1:34am

Moin,

Habe das grad mal mit einem Process getestet:

Java Quellcode

1
new ProcessBuilder("C:\\\\Pfad\\zur\\Datei.exe").start();

Nach Aufruf dieser Start-Methode für den Prozess kann das Java-Programm beendet werden.
Der Prozess bleibt aber bestehen, zumindest bei mir unter Vista.

Gruß,
Puni

[1. EDIT]Ergänzung hinzugefügt.
[2. EDIT]Code angepasst.


Kann ich leider nicht bestätigen. Wenn ich mein Projekt innerhalb der Netbeans IDE mittels Maven startet endet der Prozess erst dann, wenn das Programm (in diesem Fall der Taschenrechner) beendet wird.

Java Quellcode

1
2
3
4
5
6
public class Run {
    public static void main(String[] args) throws Exception{
        new ProcessBuilder("calc").start();
        System.exit(0);
    }
}


EDIT: Ok, ich muss mich korrigieren! Das Verhalten ist nicht wie von mir beschrieben.

Es ist wohl standardmäßig so, dass ein Prozess ausserhalb der JVM erzeugt wird. Das Problem war an sich die Netbeans IDE - Die irgendwie erkennt, dass innerhalb der JVM ein Prozess gestartet wurde und auch erst dann die Beendigung anzeigt, wenn dieser Prozess auch beendet wurde.

Viele Dank an die Ideen und Hilfen :)

6

Saturday, March 28th 2009, 10:50am

Also ich finde die Lösung von Puni auch am Besten, aber mich würde trotzdem interessieren ob das was ich vorgeschlagen habe funktioniert oder nicht. Hast du das raus gefunden?

7

Saturday, March 28th 2009, 10:56am

Also ich finde die Lösung von Puni auch am Besten, aber mich würde trotzdem interessieren ob das was ich vorgeschlagen habe funktioniert oder nicht. Hast du das raus gefunden?


Sollte wahrscheinlich auch funktionieren. Könnte aber wahrscheinlich zu Problemen führen: Ich könnte mir vorstellen, dass die Java-Anwendung u.U. beendet wird, bevor der Thread den Prozess erzeugt wurde.

Ich brauchte den Code sowieso nur als Wrapper, weil der Drucker meines Vaters zu blöd ist die Windows-MAPI zu benutzen.

8

Sunday, March 29th 2009, 6:45am

Hi

meistens schreibt man sich einen script, der ein programm beendet

9

Sunday, March 29th 2009, 11:14am

Moin,
aber das aufzurufende Programm soll ja selbst darüber Kontrolle haben, wann es beendet wird.
Daher ist der Aufruf als Hintergrundprozess die simpelste und richtigste Lösung.

10

Monday, March 30th 2009, 5:53pm

Ach, ich stehe ja voll auf dem Schlauch

hab an Datei löschen und nicht beenden gedacht ;(

Tut mir leid für Spam ^^

Social bookmarks