eule
28-01-2007, 13:55
Guten Tag
Ich schreibe gerade ein Programm das ein GUI für für Streamripper wird.
In einem Teil muss ich dafür Streamripper starten, was auch prima funktioniert. Doch nach ca einer halben Stunde friert der Prozess einfach ein. Die Datei (die aufgenommen wird) wird nicht mehr größer. Der Prozess ist aber noch da und abbrechbar.
Hat wer eine Ahnung wie ich nachschauen kann, was mit dem Prozess passiert? Legt die jre die irgendwie nach einiger Zeit schlafen? Ich kann mir das absolut nicht vorstellen.
Zur Testzwecken habe ich mal nebenbei Streamripper von der Konsole gestartet. Der lief dann ohne Probleme und hat auch keine Anzeichen gebracht, warum der von Java gestartete Prozess einfrieren sollte.
Ich wäre für jeden Tipp dankbar, was ich jetzt machen könnte.
P.s.: Ich habe java6 auf Linux, Exclipse als Übersetzer.
edit:
Unter Windows sieht man das besonders schnell, wie ich gerade festgestellt habe. Dieser Code übersetzt und ausgeführt verweigert nach 2,2MB die Aufnahme, während den Befehl über die Windows Commandline bis zum bitteren Ende aufnimmt. Kann das wer bestätigen? Das ist echt zu weinen.
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
public class start
{
private JFrame frame = new JFrame("Test");
private JButton startButton = new JButton("Start");
private JButton stopButton = new JButton("Stopp");
Process p = null;
public start()
{
JPanel panel = new JPanel();
frame.add(panel);
panel.add(startButton);
panel.add(stopButton);
frame.setSize(200,65);
frame.setVisible(true);
startButton.addActionListener(new StartListener());
stopButton.addActionListener(new Stopplistener());
}
class StartListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
try
{
p = Runtime.getRuntime().exec("streamripper.exe http://listen.to.techno4ever.net");
}
catch (IOException f)
{
JOptionPane.showMessageDialog(frame,"Fehler beim" +
"Ausführen von Strearipper:\n"+f);
System.err.println("Fehler beim Ausführen von Streamripper"+f);
}
}
}
class Stopplistener implements ActionListener
{
public void actionPerformed(ActionEvent g)
{
p.destroy();
}
}
public static void main(String[] args)
{
new start();
}
}
Streamripper gibts übrigends hier: http://sourceforge.net/project/showfiles.php?group_id=6172&package_id=135477
Ich schreibe gerade ein Programm das ein GUI für für Streamripper wird.
In einem Teil muss ich dafür Streamripper starten, was auch prima funktioniert. Doch nach ca einer halben Stunde friert der Prozess einfach ein. Die Datei (die aufgenommen wird) wird nicht mehr größer. Der Prozess ist aber noch da und abbrechbar.
Hat wer eine Ahnung wie ich nachschauen kann, was mit dem Prozess passiert? Legt die jre die irgendwie nach einiger Zeit schlafen? Ich kann mir das absolut nicht vorstellen.
Zur Testzwecken habe ich mal nebenbei Streamripper von der Konsole gestartet. Der lief dann ohne Probleme und hat auch keine Anzeichen gebracht, warum der von Java gestartete Prozess einfrieren sollte.
Ich wäre für jeden Tipp dankbar, was ich jetzt machen könnte.
P.s.: Ich habe java6 auf Linux, Exclipse als Übersetzer.
edit:
Unter Windows sieht man das besonders schnell, wie ich gerade festgestellt habe. Dieser Code übersetzt und ausgeführt verweigert nach 2,2MB die Aufnahme, während den Befehl über die Windows Commandline bis zum bitteren Ende aufnimmt. Kann das wer bestätigen? Das ist echt zu weinen.
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
public class start
{
private JFrame frame = new JFrame("Test");
private JButton startButton = new JButton("Start");
private JButton stopButton = new JButton("Stopp");
Process p = null;
public start()
{
JPanel panel = new JPanel();
frame.add(panel);
panel.add(startButton);
panel.add(stopButton);
frame.setSize(200,65);
frame.setVisible(true);
startButton.addActionListener(new StartListener());
stopButton.addActionListener(new Stopplistener());
}
class StartListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
try
{
p = Runtime.getRuntime().exec("streamripper.exe http://listen.to.techno4ever.net");
}
catch (IOException f)
{
JOptionPane.showMessageDialog(frame,"Fehler beim" +
"Ausführen von Strearipper:\n"+f);
System.err.println("Fehler beim Ausführen von Streamripper"+f);
}
}
}
class Stopplistener implements ActionListener
{
public void actionPerformed(ActionEvent g)
{
p.destroy();
}
}
public static void main(String[] args)
{
new start();
}
}
Streamripper gibts übrigends hier: http://sourceforge.net/project/showfiles.php?group_id=6172&package_id=135477