好吧,我对 Java 编码来说是 super 、额外、全新的,但我慢慢地掌握了所有术语。但真正的问题是这个错误。我正在尝试做一些编码片段,当启动时,它将打开一个批处理文件(我对它们更有经验)。我非常寻找答案,但没有解决问题,所以我发布了有关我的具体情况的帖子。
这就是所说的代码:
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 行/ block 不在方法中,当我确定它在 main 中时。
我遇到了一些异常(exception)的错误,但我想我解决了它。我不知道异常会是什么((意味着 IOException 是如何从runtime.exec的东西中发生的)这意味着如果它确实开始工作,它不会启动批处理文件?)。
任何帮助将不胜感激,即使只是“这是不可能做到的”
最佳答案
您需要为异常指定一个变量,以便稍后可以使用它,例如...
catch (IOException exp) {
您还应该考虑打印异常,至少打印到控制台(如果不是某种记录器的话)...
catch (IOException exp) {
ex.printStackTrace();
//...
这样可以更轻松地追踪潜在问题(如果/当它们发生时)。
顺便说一句,您确实应该使用 ProcessBuilder
而不是 Runtime.exec
,除此之外,它还可以更好地管理包含以下内容的输出流和参数:空格...
关于java - 我无法解决我的 <identifier> 预期错误,并且不知道为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24544477/