web-dev-qa-db-ja.com

Javaエラー「ローカル変数の値は使用されていません」

私は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

修正は簡単だと思いますが、方法がわかりません。誰かが助けてくれたらいいのに。

8
Andrew Howard

まあ、「ローカル変数pの値は使用されていません。」というエラーは、実際にはエラーではありません。これはあなたのIDE(Eclipse)であり、実際にはその変数を読み取っていないので、変数から入力を受け取っていないことを警告しています。

そして、クラスのもう1つの問題は、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である必要があります

12
Austin

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

あなたが持っているのはエラーではなく警告です。 Eclipse(および他のIDE /コンパイラー)は、変数pに値を割り当てたが、それをどこにも使用しなかったことを通知します。これはエラーになることがあるため、これがわかります。ほとんどの場合、変数に値を割り当てるときは、後でその変数を何らかの方法で使用します。

その特定のステートメントを次のように変更することで、エラーを排除できます。

rt.exec("calc.exe")

execの呼び出しから値を割り当てる必要がないためです。

1
arcy

変数の使用はここでは問題になりません。そのエラーが発生するのは、JVMが実行を開始する場所を知るためにシグネチャを持つメソッドを必要とするためです。

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

このシグネチャを持つメソッドをクラスに導入すると、そのエラーがクリアされます。または、以下のように静的ブロックにコードを埋め込むこともできますが、この方法はお勧めしません。

static {
    // TODO: Your code here
}
0
Everyone

mainを使用していない場合、コンパイル方法はmainメソッドを使用してください。そして、2つ目は、メソッドでpローカル変数を使用する方法です。

0
user2703336

エラー「ローカル変数pの値は使用されていません」は、コードのどこにも変数pを使用していないためです。

エラーを削除するには、変数「p」を削除する必要があります。

電卓を実行するには、次のコードを使用する必要があります。

public class MainClass {

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

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

    }

}

これとGoogle翻訳によって翻訳された他のすべてのコメント

0
TorchTT

愚かな質問のようなものはありません(最悪の場合、置き忘れたものだけです)。

「エディターにメインタイプが含まれていません」とは、メインメソッドが定義されていないことを意味します。すべてのJavaプログラムには、次のようなmainメソッドが必要です。

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

ここにコードを配置する必要があります。

「使用されていない値」は単なる警告です。これは、変数pがtryブロック内にのみ存在することを示しています。トライの前にp変数を宣言できます。そのようにして、トライスコープの外で使用できます(変数のスコープは、変数が存在する場所(この場合は、トライブロック内のみ)を指します)。

あなたがあなたの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ではない)

0
EvenLisle