Eclipse 无法通过ProcessBuilder运行Scala

Eclipse 无法通过ProcessBuilder运行Scala,eclipse,scala,command-line,Eclipse,Scala,Command Line,当我试着跑的时候 processBuilder = new ProcessBuilder("scala", "-classpath", CLASSPATH, CLASSNAME); process = processBuilder.start; process.waitFor; 在EclipseHeliosIDE上的Scala应用程序中,它生成 java.io.IOException: Cannot run program "scala": CreateProcess error=2, The

当我试着跑的时候

processBuilder = new ProcessBuilder("scala", "-classpath", CLASSPATH, CLASSNAME);
process = processBuilder.start;
process.waitFor;
在EclipseHeliosIDE上的Scala应用程序中,它生成

java.io.IOException: Cannot run program "scala": CreateProcess error=2, The system cannot find the file specified.


我已经配置了Windows系统环境变量Path,scala在Windows命令行上运行正常。我还将变量路径添加到Eclipse运行配置中。

我怀疑这里的问题是您需要传递scala.bat,而不是scala。要缩小问题范围,您应该尝试运行其他程序,看看您可以运行什么或不能运行什么。

我怀疑这里的问题是您需要通过scala.bat,而不是scala。要缩小问题范围,您应该尝试运行其他程序,看看哪些程序可以运行,哪些程序不能运行。

1。类路径是否包含空格?2.如果将scala的完整路径作为第一个参数,会发生什么。是的。如果我指定scala.bat clearly的路径并检查从processBuilder.environment.getPath返回的值,它将运行。它是否包含带有scala.bat的目录?是的。但是当我将目录更改为没有空格的新路径时,它也不起作用。类路径是否包含空格?2.如果将scala的完整路径作为第一个参数,会发生什么。是的。如果我指定scala.bat clearly的路径并检查从processBuilder.environment.getPath返回的值,它将运行。它是否包含带有scala.bat的目录?是的。但是当我将目录更改为没有空格的新路径时,它也不起作用。它与processBuilder=new ProcessBuilderjava配合使用效果很好-version@classicalist它是否与scala.bat所在目录中的另一个可执行文件一起工作?当在没有扩展名的情况下传递时,它是否与java.exe所在目录中的另一个.bat文件一起工作?它是否可以与scala.bat?.exe一起工作,而扩展名不在与scala.bat相同的目录下->NO.bat在与java.exe相同的目录下->NO scala.bat->是现在我看到它可以与包括的扩展名一起工作,除了java@classicalist我发现很奇怪,与scala.bat位于同一目录中的exe不起作用,但调用scala.bat确实起作用。我以前观察到批处理文件似乎需要执行扩展名,但我不明白为什么java可以工作,而另一个exe不能,除非调用的scala.bat不在您认为的目录中。可以肯定的是,您可以在其中添加一些echo以进行调试。我的系统上只有1个scala.bat。另一个.exe最初位于java目录中,例如javacpl,工作正常。但是我放进去的一个新的没有。非常感谢您的关注。它与processBuilder=new ProcessBuilderjava配合得很好-version@classicalist它是否与scala.bat所在目录中的另一个可执行文件一起工作?当在没有扩展名的情况下传递时,它是否与java.exe所在目录中的另一个.bat文件一起工作?它是否可以与scala.bat?.exe一起工作,而扩展名不在与scala.bat相同的目录下->NO.bat在与java.exe相同的目录下->NO scala.bat->是现在我看到它可以与包括的扩展名一起工作,除了java@classicalist我发现很奇怪,与scala.bat位于同一目录中的exe不起作用,但调用scala.bat确实起作用。我以前观察到批处理文件似乎需要执行扩展名,但我不明白为什么java可以工作,而另一个exe不能,除非调用的scala.bat不在您认为的目录中。可以肯定的是,您可以在其中添加一些echo以进行调试。我的系统上只有1个scala.bat。另一个.exe最初位于java目录中,例如javacpl,工作正常。但是我放进去的一个新的没有。非常感谢你的关心。