错误线程"main"java.lang.NullPointerException中的异常

Nic*_*ool 0 java file

你好我想从java生成gams我已经安装了gams,这里是代码gams是一个建模应用程序我想从java调用它我确定路径是我应该怎么做才能纠正它?它给了我异常例外:

    Exception in thread "main" java.lang.NullPointerException
            at java.lang.ProcessBuilder.start(ProcessBuilder.java:441)
            at java.lang.Runtime.exec(Runtime.java:593)
            at java.lang.Runtime.exec(Runtime.java:466)
            at gams.RunGAMS.main(RunGAMS.java:27)

Java Result: 1
Run Code Online (Sandbox Code Playgroud)

这是我从这个链接改变的代码

package gams;

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

class RunGAMS {

      public static void main(String[] args) {
              System.out.println("Start");
              String[] cmdArray = new String[5];
              cmdArray[0] ="C:"+File.separator+"Program Files"+File.separator+"GAMS23.7" + File.separator +"gams.exe";
              cmdArray[1] ="C:"+File.separator+"Documents and Settings"+File.separator+"Parsa"+File.separator+"My Documents"+File.separator+"gamsdir"+File.separator+"projdir" + File.separator +"trnsport.gms";
              cmdArray[2] ="C:"+File.separator+"Documents and Settings"+File.separator+"Parsa"+File.separator+".nbi"+ File.separator+"tmp";
              cmdArray[3] ="LO=3";

              try {
                     Process p = Runtime.getRuntime().exec(cmdArray);
                     BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
                     String s = null;
                     while((s=stdInput.readLine()) !=null){
                        System.out.println(s);
                     }
                     p.waitFor();

              }
              catch (java.io.IOException e )
              {
                     System.err.println(">>>>" + e.getMessage() );
                     e.printStackTrace();
              }
              catch (InterruptedException e )

              {
                     System.err.println(">>>>" + e.getMessage() );
                     e.printStackTrace();
              }
              System.out.println("Done");
      }
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 7

看看这段代码:

String[] cmdArray = new String[5];
cmdArray[0] = ...;
cmdArray[1] = ...;
cmdArray[2] = ...;
cmdArray[3] = ...;
Run Code Online (Sandbox Code Playgroud)

您正在创建一个包含五个元素的数组,但只填充其中的四个元素.

如果您只想要四个参数,请尝试将数组大小更改为4.