gpt4 book ai didi

java - 使用 Java 启动外部程序?

转载 作者:行者123 更新时间:2023-11-30 07:34:49 25 4
gpt4 key购买 nike

问题:在一定时间后自动关闭程序。

解决方案:这是我想出的解决问题的方法(适用于 Ubuntu 上的 Rhythmbox):

package rhythmBox;

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class closeRhythmBox extends JFrame implements ActionListener {

private static final long serialVersionUID = 1L;
private static final int WIDTH = 400;
private static final int HEIGHT = 300;
private JTextField minutesBox;

public static void main(String[] args) {
new closeRhythmBox().setVisible(true);
}

public static void execKill(long minutes) throws InterruptedException {
Thread.sleep(minutes*60*1000);
try{
Runtime.getRuntime().exec("pkill rhythmbox");
System.exit(0);
}
catch (IOException ioe) {
ioe.printStackTrace();
}
}
public closeRhythmBox(){
setTitle("Rythmbox Timer");
setSize(WIDTH, HEIGHT);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Container pane = getContentPane();
pane.setLayout(new FlowLayout());

JPanel box = new JPanel();
box.setLayout(new FlowLayout());
JButton startButton = new JButton("Start");
startButton.addActionListener(this);
box.add(startButton);
box.add(new JLabel("Minutes Until Close"));
box.add(minutesBox = new JTextField(20));

pane.add(box);
pack();

}

public void actionPerformed(ActionEvent e) {
String textNum = minutesBox.getText();
long minuteNum = Long.parseLong(textNum);
if (e.getActionCommand().equals("Start")){
try {
execKill(minuteNum);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}
}

最佳答案

您可能无法以这种方式启动 EXE。我认为这是为了使用默认应用程序打开一个文件,而不是自己运行一个应用程序 - 或者你只是遇到了 Windows 安全问题。

您可以使用 Java.lang.Process 来运行带参数的程序。

关于java - 使用 Java 启动外部程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4989749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com