使用gui在java程序中运行命令提示符(netbeans)

使用gui在java程序中运行命令提示符(netbeans),java,netbeans,solr,cmd,Java,Netbeans,Solr,Cmd,嗨,我正在尝试做一个程序,它将能够访问命令提示符并能够启动solr的start.jar文件,这样我的搜索程序就可以工作了..问题是当我在eclipse中使用代码时,程序运行平稳,但当我在netbeans中传输我的程序时,它说它无法访问jar文件。它没有给我任何堆栈跟踪错误,这就是为什么我不知道是什么问题。这是我的代码 import java.io.BufferedReader; import java.io.InputStreamReader; public class CmdTest {

嗨,我正在尝试做一个程序,它将能够访问命令提示符并能够启动solr的start.jar文件,这样我的搜索程序就可以工作了..问题是当我在eclipse中使用代码时,程序运行平稳,但当我在netbeans中传输我的程序时,它说它无法访问jar文件。它没有给我任何堆栈跟踪错误,这就是为什么我不知道是什么问题。这是我的代码

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class CmdTest {
    public static void main(String[] args) throws Exception {
            ProcessBuilder builder = new ProcessBuilder(
                "cmd.exe", "/c", "cd \"D:\\Downloads\\solr-4.2.1\\solr-4.2.1\\example\" && java -jar start.jar");
            builder.redirectErrorStream(true);
            Process p = builder.start();
            BufferedReader r = new BufferedReader(new      InputStreamReader(p.getInputStream()));
            String line;
            while (true) {
                line = r.readLine();
                if (line == null) { break; }
                System.out.println(line);
            }
        }
          }

错误是这样的:错误:无法访问jarfile start.jar

传递给
ProcessBuilder
的每个参数都应该是要执行的命令的单独参数。好吧,我不是百分之百确定你所构建的命令是否有效,但我觉得它只是一团糟

相反,如果要更改执行命令的位置,为什么不使用
ProcessBuilder
目录
方法,该方法将在执行命令时将执行上下文更改为指定位置

public class CmdTest {
    public static void main(String[] args) throws Exception {
            ProcessBuilder builder = new ProcessBuilder("java.exe", "-jar", "start.jar");
            builder.directory(new File("D:\\Downloads\\solr-4.2.1\\solr-4.2.1\\example"));
            builder.redirectErrorStream(true);
            Process p = builder.start();
            BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
            String line = null;
            while ((line = r.readLine()) != null) {
                System.out.println(line);
            }
        }
}

您好,我尝试了您发布的源代码,但是我在while语句中的r.readline()中遇到了这个错误,它说BufferedReader类型的方法readline()未定义..我已经在导入中添加了BufferedReader..谢谢,因为这完全是从您的代码示例中获取的(我复制并操纵了它)…在快速检查之后,应该是
readLine
,我已经更新了示例您是如何压缩jar的?也许包裹有问题