2012-06-16 6 views
8

Soy muy nuevo en Java (comencé a aprender hace 2 días). Lo siento si esta es una pregunta estúpida. Estoy tratando de aprender a usar rt.exec & métodos similares, así que traté de hacer un programa muy simple que ejecuta calc.exe. Este es el código:Error de Java "Valor de la variable local no se usa"

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

me sale el error "El valor de la variable local p no se utiliza".

Y si intento compilar esto es lo que me sale:

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

creo que es fácil de solucionar, pero no sé cómo. Sería bueno si alguien ayuda.

+1

Necesita un método 'public static void main (String [] argv)' (exactamente así). – Thilo

+0

1) * "el valor de la variable local p no se utiliza" * es una advertencia de tiempo de compilación. 2) Un 'Launch Error' es un error de tiempo de ejecución en lugar de un error de tiempo de compilación. 3) Alguien que es * "realmente nuevo en Java" * debería intentar cosas más fáciles que utilizar un código específico de plataforma para crear un 'Proceso'. Existe este [artículo de 6 páginas] (http://www.javaworld.com/jw-12-2000/jw-1229-traps.html) que describe algunos de los requisitos para usar un 'Proceso' correctamente. Por ejemplo, requerirá un 'Thread' para consumir las secuencias de salida del' Process'. –

Respuesta

11

Bueno, el error "El valor de la variable local p no se utiliza.", En realidad no es un error. Es su IDE (Eclipse), advirtiéndole que no está leyendo realmente esa variable, por lo que no está recibiendo ningún aporte de la misma.

Y el otro problema con su clase es que no tiene un método principal. De esta manera,

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

Y por cierto, siempre debe comenzar un nombre de clase con una letra mayúscula. Entonces public class main, debería ser public class Main

+0

Gracias, ahora está funcionando. –

1

Usted obtener ese error porque no tiene el método main que se utiliza para iniciar el programa 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 
    } 
} 
1

Creo que lo que tiene no es un error sino una advertencia; eclipse (y otros IDE/compiladores) le dirá que, aunque asignó un valor a la variable p, no lo usó en ninguna parte. Te dice esto porque a veces esto es un error; sobre todo cuando asigna un valor a una variable, luego usa esa variable de alguna manera.

puede eliminar el error cambiando esa declaración particular, a solo

rt.exec("calc.exe") 

ya que no es necesario que asigne un valor de la llamada a Exec.

0

Error "El valor de la variable local p no se usa" debido al hecho de que en ninguna parte del código, no se utiliza la variable p.

Para eliminar el error, es necesario eliminar la variable "p".

Para ejecutar la calculadora, debe utilizar el código:

public class MainClass { 

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

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

    } 

} 

Este y todos los demás comentarios traducidos por Google Translate

+0

¿Qué es con las líneas en blanco? Podría poner uno antes de la declaración 'principal', pero los otros son relativamente inútiles. –

+0

Gracias, ¿quizás podría decir cómo ejecutar un .exe que está empaquetado en .jar? Quiero ejecutar no la calculadora predeterminada de Windows, sino la que descargué anteriormente. Éste - http://i.imgur.com/NGnqL.png –

+0

@Andrew Thompson Esto es por conveniencia) Debido a que cuando trabajo con grandes cantidades de código, comparto los espacios lógicos espaciales, lo que simplifica la lectura del código en el futuro. – TorchTT

0

No hay tal cosa como un qiestion estúpida (sólo fuera de lugar queridos, en el peor caso).

El "Editor no contiene un tipo principal" se refiere al hecho de que no ha definido un método principal.Todos los programas de Java requieren un método principal, como tal:

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

Aquí es donde debe colocar su código.

El "Valor no utilizado" es solo una advertencia; te dice que tu variable p solo existe dentro del try-block. Puedes declarar tu p-variable antes del intento, de esa manera, puedes utilizarla fuera del ámbito de prueba (el alcance de una variable se refiere a dónde existe, en este caso, solo dentro del bloque de prueba).

Si desea utilizar su p, esto es lo que está buscando:

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

[EDIT]: Tenga en cuenta que es parte de la Convención de Java para utilizar letras mayúsculas para la primera letra de la codificación una clase, por ejemplo Main.java (no main.java)

0

El uso de la variable no está en cuestión aquí. Ese error aparece porque JVM necesita un método con la firma para saber dónde comenzar la ejecución.

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

Introduzca un método con esta firma en su clase y borrará ese error. Como alternativa, puede insertar su código en un bloque estático como se muestra a continuación, pero este método no es recomendable.

static { 
    // TODO: Your code here 
} 
0

que no está utilizando principal cómo puede compilar por favor use el método principal. La segunda respuesta es usar la variable p local en su método. Otros declaran sabiamente el comienzo de la variable p del método.

Cuestiones relacionadas