我无法解决我的<identifier>预期错误,也不知道为什么</identifier>

时间:2014-07-03 03:33:15

标签: java compiler-errors

好的,所以我是超级,额外,全新的java编码,但我慢慢得到所有的条款。但真正的问题是这个错误。我尝试做一个小编码片段,在启动时会打开一个批处理文件(我对它们更有经验)。我非常寻找答案,但没有解决它,所以我发布了关于我的具体情况。

这是代码:

 public class Startbat {
 public static void main(String[] args){
    try {
        Runtime.getRuntime().exec("cmd /c start hello.bat");
        }
    catch (IOException) {
        System.out.println ("Something is wrong here...");
        }
 }
}

当我尝试javac时,我明白了:

C:\Users\Owner>javac -g "C:\Users\Owner\Desktop\codes\codes\Startbat.java"
C:\Users\Owner\Desktop\codes\codes\Startbat.java:6: error: <identifier> expected

            catch (IOException) {
                              ^
1 error

我发现我得到的错误是关于catch line / block不在方法中,当我确定它在主要内部时。

我在那里有一些例外的错误,但我想我解决了它。我不知道异常会是什么((意思是如何从runtime.exec的东西发生IOException)意味着这意味着如果批处理文件确实起作用,它将不会启动批处理文件吗?)

任何帮助都会受到赞赏,即使它只是&#34;这是不可能的&#34;

1 个答案:

答案 0 :(得分:2)

您需要为异常指定一个变量,以便稍后使用它,例如......

catch (IOException exp) {

你也应该考虑打印异常,至少是控制台,如果不是某种记录器...

catch (IOException exp) {
    ex.printStackTrace();
    //...

这样可以更容易地追踪潜在问题是否/何时发生。

作为旁注,您确实应该使用ProcessBuilder而不是Runtime.exec,除了其他任何内容之外,它还可以更好地管理包含空格的输出流和agruments ......