目前我正在使用此方法:
import java.io.*;
import com.sun.speech.freetts.*;
import javax.swing.JOptionPane;
public class SO
{
public void Open(String siteLink)
{
try
{
Process p = Runtime.getRuntime().exec("cmd /c start "+siteLink);
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"Error"+e);
}
}
}
这是我的java类。 在我输入的主框架源中:
SO run = new SO();
run.Open("file:///G:\\Abhijeet\\Videos\\");
这会打开视频文件夹 但是这种方法不会启动.exe文件或Windows应用程序。
我甚至尝试使用' explorer =' ,启动我的电脑,但什么都没发生。
答案 0 :(得分:0)
我真的不确定你要做什么,但打开网址的首选方式可能是Desktop#browse(文档:https://docs.oracle.com/javase/7/docs/api/java/awt/Desktop.html#browse(java.net.URI))
要启动程序,我会使用Desktop#open(文档:https://docs.oracle.com/javase/7/docs/api/java/awt/Desktop.html#open(java.io.File))
此外,当你在这里时 - 做一些命令行注入的研究。
如果使用任何形式的变量,用户可以轻松地使其执行任何命令。或者您可能会意外地使用导致错误的字符。如果在这种情况下仍然坚持使用Runtime #exec,请参阅带有String []的那个。
那么你最有可能做new String[]{"cmd", "/c", "start", siteLink}
。