8

我对java真的很陌生(2天前开始学习)。对不起,如果这是一个愚蠢的问题。我正在尝试学习如何使用 rt.exec 和类似的方法,所以我尝试制作一个运行 calc.exe 的非常简单的程序。这是代码:

public class main {
{
try {
Runtime rt = Runtime.getRuntime() ;
Process p = rt.exec("calc.exe") ;
 }

catch(Exception exc){/*handle exception*/}
    }
}

http://i.stack.imgur.com/KrpsT.png

我收到错误“未使用局部变量 p 的值”。

如果我尝试编译这就是我得到的:

http://i.stack.imgur.com/Ryllw.pngI

我认为这很容易解决,但我不知道如何解决。如果有人帮忙就好了。

4

7 回答 7

13

嗯,报错“The value of local variable p is not used.”,其实不是报错。这是您的 IDE (Eclipse),警告您实际上并没有读取该变量,因此您没有收到任何输入。

您的课程的另一个问题是,您没有 main 方法。像这样,

public class main {
public static void main(String[] args) {
try {
Runtime rt = Runtime.getRuntime() ;
Process p = rt.exec("calc.exe") ;
} catch(Exception exc){
/*handle exception*/
}
    }
}

顺便说一句,您应该始终以大写字母开头的类名。所以public class main,实际上应该是public class Main

于 2012-06-16T11:19:33.737 回答
1

您收到该错误是因为您没有main用于启动 java 程序的方法:

public class main {

public static void main(String[] args) {
   try {
       Runtime rt = Runtime.getRuntime() ;
       Process p = rt.exec("calc.exe") ; // here, eclipse is WARINING(so you can ignore it) you that that the variable p is never used(it's just a warning)
   } catch(Exception exc) {
       /*handle exception*/
       // never do this, always put at least a System.out.println("some error here" + e); so you don't ignore a potential exception
   }
}
于 2012-06-16T11:18:20.663 回答
1

我相信您所拥有的不是错误,而是警告;eclipse(和其他 IDE/编译器)会告诉你,虽然你给变量 p 赋值了,但你并没有在任何地方使用它。它会告诉您这一点,因为这有时是一个错误;大多数情况下,当您为变量赋值时,您稍后会以某种方式使用该变量。

您可以通过将该特定语句更改为只是

rt.exec("calc.exe")

因为您不需要从对 exec 的调用中分配值。

于 2012-06-16T11:18:44.263 回答
0

你没有使用 main 你怎么编译请使用 main 方法。第二个是在你的方法中使用 p 局部变量。否则声明 p 变量开始的方法。

于 2013-08-23T04:30:18.350 回答
0

错误“未使用局部变量 p 的值”,因为代码中的任何地方都没有使用变量 p。

要删除错误 - 有必要删除变量“p”。

要运行计算器,您必须使用以下代码:

public class MainClass {

    public static void main(String args[]) throws IOException {

        Runtime.getRuntime().exec("cmd /c calc.exe");

    }

}

此评论和所有其他评论由 Google 翻译翻译

于 2012-06-16T11:24:32.877 回答
0

没有愚蠢的问题(只有放错地方,在最坏的情况下)。

“编辑器不包含主类型”是指您没有定义主方法的事实。所有 java 程序都需要一个 main 方法,例如:

public static void main(String [] args){
    <code>
}

这是您必须放置代码的地方。

“未使用的值”只是一个警告;它告诉你你的变量 p 只存在于 try 块中。您可以在 try 之前声明您的 p 变量 - 这样,您可以在 try 范围之外使用它(变量的范围是指它存在的位置,在这种情况下,仅在 try 块内)。

如果你想使用你的 p,这就是你所追求的:

public class Main {
    public static void main(String[] args) {
        Process p;
        try {
            Runtime rt = Runtime.getRuntime();
            p = rt.exec("calc.exe");
        } catch(Exception exc) {/*handle exception*/}
    }
}

[编辑]:请注意,使用大写字母作为类的第一个字母是 java 编码约定的一部分,例如 Main.java(not main.java)

于 2012-06-16T11:28:57.260 回答
0

变量的使用在这里没有问题。出现该错误是因为 JVM 需要一个带有签名的方法来知道从哪里开始执行。

public static void main( String args[] ){ //TODO: Stuff here } 

在您的类中引入具有此签名的方法,它将清除该错误。或者,您可以将代码嵌入到静态块中,如下所示 - 但不推荐使用此方法。

static {
    // TODO: Your code here
}
于 2012-06-16T11:30:45.007 回答