我正在制作一个Swing程序,它将用于使用G ++轻松运行C ++程序,但我仍然坚持实际运行该程序。我尝试使用Runtime.getRuntime()或类似的东西,但似乎没有用。而且,使用它只运行命令,并且不允许输入。显然,因为它将运行一个程序,它需要能够接收命令行输入,所以有没有办法通过打开cmd然后在该程序实例中执行命令来运行命令,允许用户输入内容?
答案 0 :(得分:0)
看看ProcessBuilder类,我认为它可以满足您的要求:https://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html
答案 1 :(得分:0)
如何在cmd中运行命令,并将其打开以允许输入? (Java)的
首先,您是否正在使用main方法中的参数?
public static void main(String[] args) //<--- arguments will be send to args[x]
{
}
如果你希望你的程序能够接收参数,你必须处理那些收到的参数,如果没有,即使参数被传入。没有任何事情会发生。
示例:强>
class MyFullName{
public static void main(String[] args){
if(args.length() != 2)
system.out.println("2 arguments needed");
else
System.out.println("Your fullname is: " + args[0] + " " args[1]);
}
}
上面的示例是一个程序,它接收名字和姓氏并将它们组合在一起并打印出来。您键入的参数将传递到args
字符串数组。
测试运行:
javac MyFullName.java
java MyFullName adam smith
Your fullname is adam smith
如果您使用的是Windows而不想在命令提示符下键入命令,则可以将这些代码放在批处理文件中。执行批处理文件将执行那些将启动程序的命令。
答案 2 :(得分:0)
此示例Java程序执行'dir'命令读取dir命令的输出打印结果。
import java.io.*;
public class doscmd
{
public static void main(String args[])
{
try
{
Process p=Runtime.getRuntime().exec("cmd /c dir");
p.waitFor();
BufferedReader reader=new BufferedReader(new InputStreamReader(p.getInputStream()));
String line=reader.readLine();
while(line!=null)
{
System.out.println(line);
line=reader.readLine();
}}
catch(IOException e1) {}
catch(InterruptedException e2) {}
System.out.println("Done");
}}