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

さて、「ローカル変数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

于 2012-06-16T11:19:33.737 に答える
1

mainJavaプログラムを開始するために使用されるメソッドがないため、このエラーが発生します。

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

コードのどこにも変数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-block内にのみ存在することを示しています。tryの前にp-variableを宣言できます。そうすれば、try-scopeの外部で使用できます(変数のスコープは、変数が存在する場所を参照します。この場合は、try-blockの内部のみです)。

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

于 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 に答える
0

mainを使用していません。どのようにコンパイルできますか。mainメソッドを使用してください。2つ目は、メソッドでpローカル変数を使用することです。それ以外の場合は、メソッドの開始時にp変数を宣言します。

于 2013-08-23T04:30:18.350 に答える