Como arrancar programa hecho en Java?

SikorZ

Bueno estoy empezando en el mundillo de java y usando netbeans, la cosa esta en que quiero arrancar mi proyecto que funciona perfectamente si pulso en el jframe principal con boton derecho y Run, pero cuando hago el clean & build project me hace un .jar que no me deja abrir, simplemente lo ejecuto pero no sale nada. Supongo que es porque mi main esta vacio vaya, no me han enseñado de otra forma, aqui os dejo datos:

Main.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package paredes;

/**
 *
 * @author Alumno
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
    }

}

ERROR que saca al hacer por consola java Rectangulo.jar:

spoiler

Alguna idea?

Tengo aparte un panel.form
panel.java (panel es el jframe con el diseño del programa y tal)
y Rectangulo.java con las clases a usar

tOWERR

Creo que te dice que no encuentra la clase Rectangulo y por lo que veo en el codigo la clase rectangulo no aparece por ninguna parte.

1 respuesta
SikorZ

#2 La clase rectangulo esta en rectangulo.java pero no se hacer que la encuentre xDD

1 respuesta
tOWERR

el metodo main lo tienes que poner en esa clase para que arranque desde hay.

1 respuesta
Dream-MV

#3 Importarla de java.utils seguramente.

1 respuesta
SikorZ

#4 Lo que has dicho no tiene sentido para mi, he probado poniendo las clases de rectangulo en main y nada y viceversa pero nada...

#5 Como hago eso? XD Ese rectangulo.java lo tengo creado por mi :S

1 respuesta
tOWERR

#6

No digo eso, digo que en la clase Rectangulo.java pongas el metodo main, asi:

public class Rectangulo {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here
}

}

1 respuesta
JuAn4k4

te recomiendo usar un Ide como IntelliJ Idea (recomendado), o Eclipse (a mi no me gusta mucho).

Lo que te falta es el -classpath (dependencias...)

Es mas facil usar Maven o Ant o Ivy o alguna cosa de estas para declarar dependencias, etc..

Normalmente en java siempre tienes *.jar (librerias) de las que dependes, y si alguna no está a la hora de compilar / ejectuar, da un ClassNotFoundError.

Una dependencia puedes declararla para compilar y entonces compila, pero si al ejecutar no esta , pum, ClassNotFoundError.

Con un IDE de estos, le pones los jar, y si te lo marca en rojo es que no está. Simple.

Desde fuera de un ide:

java -jar tuaplicacion.jar -cp /pathtoproject/lib

SikorZ

#7 Y las clases de rectangulo despues de

public static void main(String[] args) {
        // TODO code application logic here
    }

??????????????????

tOWERR

¿Que clases de rectangulo?
No te entiendo eso de las clases de rectangulo, rectangulo tendrá metodos no clases.

1 respuesta
SikorZ

#10 Dentro de Rectangulo.java tengo la clase (class) Rectangulo con metodos en plan setBase,setAltura,getArea,getPerimetro y demas.

tOWERR

vale, no pasa nada
dentro del metodo main vas aciendo lo que quieras hacer, vas utilizando los metodos de esa clase o las cosas que quieras hacer. ¿Has visto alguna vez programacion OO?

1 respuesta
SikorZ

#12 Si, pero a ver la cosa esta en que tengo lo siguiente.
Main.java (vacio como habeis visto)
Rectangulo.java (con las clases para obtener el area y perimetro y cosas asi)
JFrame, donde esta el programa en si con todas las acciones y tal

Ahora como monto eso para que funcione? Es que realmente no tengo mucha idea, el programa en si fuciona bien si uso Run al JFrame pero cuando compilo el .jar no, mi profesor no quiere/no nos ha enseñado a hacer eso todaviax D

B

En el main principal importas el paquete rectangulo y jFame, instancias un objeto con la clase rectangulo y se acabó. Tengo la impresión de que estás ejecutando las clases independientemente.

1 respuesta
SikorZ

#14 No entiendo nada xDD... perdonad mi incompetencia pero es que es la primera vez que uso clases y toda esta paranoia en Java... xDD me veo que no lo conseguire xDD

VipeR_CS

Tengo un cacao maravillao curioso en la cabeza ahora mismo. ¿En todas las clases tienes al inicio package paredes;? Estando en el mismo package, no debería ser necesario importarlas manualmente :\

1 respuesta
SikorZ

#16 Pues si, el profesor que nos enseña tampoco tiene mucha idea xD me dijo el que tenia que ponerlo

EDIT: Si lo subo, alguien me hace el favor de ponerlo como deberia estar? asi de paso lo miro y aprendo como debe estar EN CONDICIONES para que se ejecute, que mi profesor no tiene ni idea vaya y se conforma con que nos corra, aunque luego al compilar no ejecute xDDD y el main ni lo usamos xDD

B

http://www.planetpdf.com/developer/article.asp?ContentID=6632

Cuando lo termines si continuas con dudas postealas.

JuAn4k4

Pones el "public static void main(String args[])" ¿ en TODAS las clases ?

1 respuesta
SikorZ

#19 Nop

JuAn4k4

Pues esque entonces no tiene misterio alguno,

al generar el jar , debes seleccionar la clase que tiene el metodo main. (Esto te lo permite hacer Netbeans)

Despues ejecutar el jar:

java -jar nombrejar.jar params*

Usuarios habituales