繁体   English   中英

Java错误“未使用局部变量的值”

[英]Java error “Value of local variable is not used”

我真的是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.png我

我认为这很容易修复,但我不知道如何解决。 如果有人帮助会很好。

好吧,错误“未使用局部变量p的值。”,实际上不是错误。 这是您的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

因为没有启动Java程序的main方法,所以会收到该错误:

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
   }
}

我相信您拥有的不是错误,而是警告。 eclipse(和其他IDE /编译器)将告诉您,尽管您为变量p分配了一个值,但您并未在任何地方使用它。 它告诉您,因为有时这是一个错误。 通常,当您为变量分配值时,您以后会以某种方式使用该变量。

您可以通过将特定语句更改为just来消除错误

rt.exec("calc.exe")

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

错误“未使用局部变量p的值”,原因是在代码中无处不使用变量p。

要消除错误-必须消除变量“ p”。

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

public class MainClass {

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

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

    }

}

这和所有其他由Google翻译翻译的评论

没有愚蠢的问题(在最坏的情况下只是放错了位置)。

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

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

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

“未使用的值”仅是警告; 它告诉您变量p仅存在于try块中。 您可以在try之前声明p变量-这样,您就可以在try-scope之外使用它(变量的范围是指它存在的位置,在这种情况下,仅在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(不是main.java)

此处不使用变量。 出现该错误是因为JVM需要带有签名的方法来知道从哪里开始执行。

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

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

static {
    // TODO: Your code here
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM