Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Nephewless

#1
Java / problema con librerías externas y jar
8 Octubre 2012, 18:29 PM
A ver si me podéis echar una mano porque voy algo perdido :(

Estoy en medio de un proyecto en el que una funcionalidad es capturar imagenes de las webcams instaladas en el PC en concreto.

Para poder capturar dichas imágenes he usado librerías javacv, y he tenido que instalar el OpenCV-2.4.2 y vcredist_x64. (no se muy bien porque, pero era la única manera de conseguir compilarlo y tal...)

Bueno, la cosa es que uso eclipse, y para poder compilar tengo que añadir al proyecto la librería javacv como ya he dicho anteriormente. Una vez hecho todo esto, ejecuto el programa y corre perfectamente!

El problema viene cuando construyo el proyecto, empaquetandolo todo en un .jar, y llevo ese .jar a otro pc... No funciona... Lo he probado en linux, lo he probado en windows, lo he probado en mac... incluso lo he probado en otro pc con todo lo anteriormente dicho instalado, y nada. O compilo (y para compilar tengo que instalar todo eso) y ejecuto, o si lo llevo a otra máquina, nada..

El error que me da es el siguiente:
CitarException in thread "main" java.lang.NoClassDefFoundError: hacerfotos/jar
Caused by: java.lang.ClassNotFoundException: hacerfotos.jar
   at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: hacerfotos.jar. Program will exit.

No se por donde tirar... Alguna sugerencia?

Muchas gracias de antemano!

Un saludo!

P.D.: Os dejo también los códigos que uso para capturar la cam y tal..

import com.googlecode.javacv.CanvasFrame;
import com.googlecode.javacv.cpp.opencv_core.IplImage;
import com.googlecode.javacv.cpp.opencv_highgui;
import com.googlecode.javacv.cpp.opencv_highgui.CvCapture;

public class Webcam {

    public static void main(String[] args) throws Exception {
        CvCapture capture = opencv_highgui.cvCreateCameraCapture(0);

        opencv_highgui.cvSetCaptureProperty(capture, opencv_highgui.CV_CAP_PROP_FRAME_HEIGHT, 720);
        opencv_highgui.cvSetCaptureProperty(capture, opencv_highgui.CV_CAP_PROP_FRAME_WIDTH, 1280);

        IplImage grabbedImage = opencv_highgui.cvQueryFrame(capture);

        CanvasFrame frame = new CanvasFrame("Webcam");

        while (frame.isVisible() && (grabbedImage = opencv_highgui.cvQueryFrame(capture)) != null) {
            frame.showImage(grabbedImage);
        }

        frame.dispose();
        opencv_highgui.cvReleaseCapture(capture);
    }

}


private static void captureFrame() {
// 0-default camera, 1 - next...so on
final OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);
try {
grabber.start();
IplImage img = grabber.grab();

Date date = new Date();
String nombre = String.valueOf(date.getTime());
if (img != null) {
cvSaveImage(nombre+".jpg", img);
}
} catch (Exception e) {
e.printStackTrace();
}
}
#2
Java / [Android] Modificar ImageView desde un thread
29 Septiembre 2012, 18:16 PM
Buenas! Cuanto tiempo sin entrar por aquí! jeje!

A ver, os cuento, a ver si me podéis echar un cable, que ya llevo dos días con este problemilla y no consigo solucionarlo.

El caso es que para una práctica de la uni tengo que desarollar un juego de la oca para android. Esta todo hecho, pero me queda un problema por resolver.

Utilitzo una clase que extiende de AnimationDrawable para simular el lanzamiento de los dados y controlo cuando la simulación se termina.

Código (java) [Seleccionar]
    public abstract class CustomAnimationDrawableNew extends AnimationDrawable {

    /** Handles the animation callback. */
    Handler mAnimationHandler;

    public CustomAnimationDrawableNew(AnimationDrawable aniDrawable) {
        /* Add each frame to our animation drawable */
        for (int i = 0; i < aniDrawable.getNumberOfFrames(); i++) {
            this.addFrame(aniDrawable.getFrame(i), aniDrawable.getDuration(i));
        }
    }

    @Override
    public void start() {
        super.start();
        /*
         * Call super.start() to call the base class start animation method.
         * Then add a handler to call onAnimationFinish() when the total
         * duration for the animation has passed
         */
        mAnimationHandler = new Handler();
        mAnimationHandler.postDelayed(new Runnable() {

            public void run() {
                onAnimationFinish();
            }
        }, getTotalDuration());

    }

    /**
    * Gets the total duration of all frames.
    *
    * @return The total duration.
    */
    public int getTotalDuration() {

        int iDuration = 0;

        for (int i = 0; i < this.getNumberOfFrames(); i++) {
            iDuration += this.getDuration(i);
        }

        return iDuration;
    }

    /**
    * Called when the animation finishes.
    */
    abstract void onAnimationFinish();
    }


Bien, en el hilo principal, hago la llamada a esta clase:

Código (java) [Seleccionar]

CustomAnimationDrawableNew cad = new CustomAnimationDrawableNew((AnimationDrawable) getResources().getDrawable(R.drawable.frame_animation)){
. . .
void onAnimationFinish(){
...
}
}
iv.setBackgroundDrawable(cad); //inserta la animacio
cad.start(); // inicialitza la animacio


y dentro del onAnimationFinish() hago un random del dado, printo en el mismo view donde se aplica la animación la imagen del dado resultante (es decir, si he sacado un uno, la imagen de un dado en la cara del uno xD ), luego calculo los movimientos, los pinto, y lanza el siguiente jugador que lo hace mediante la pulsación de un botón, o bien, el siguiente jugador puede ser automático, y lanza directamente.

El problema es que si se da el último caso, que el jugador es automático, al terminar la animación, empieza la animación del siguiente jugador directamente, sin poder ver que numero ha salido, y la ficha también se mueve a la vez que empieza la animación, y queda fatal.

Me gustaría poder mostrar la animación, inmediatamente cambiar la imagen y poner la del dado correspondiente, hacer una espera (medio segundo por ejemplo), mover la ficha, hacer otra espera (1 segundo) y que lanzara el siguiente jugador. El problema es que si pongo un wait se me queda todo parado, sin haberse cargado la imagen, ni haberse movido la ficha.... y estoy con el mismo problema, ya que al reactivarse estamos con las mismas.

Creo que la solución sería hacer el movimiento de fichas y el cambio de imagen del dado en threads, para así solo parar el thread principal, pero no me deja cambiar las imagenes ya que solo puedo cambiar imagenes del thread donde se han creado... y ahí estoy pillado... :(

Algun consejo o ayudilla?

Lo siento por el tocho... No he sabido resumir más o expliarme mejor...

Si necesitais más información, no dudeis en preguntar!

Muchas gracias de antemano!

Un saludete!
#3
Java / Lista de ficheros
2 Abril 2009, 02:54 AM
Hola!

Bueno, mis dos últimos posts no han tenido mucho éxito, pero lo he podido solucionar, a ver si en este alguien me puede ayudar...  :-\

La idea es hacer en una ventana donde haya una JComboBox donde me ponga todos los ficheros que hay guardados en ".\carpeta". Los ficheros son todos ".txt".

La cosa en sí es tener algo desde donde poder seleccionar el archivo y crear una string de su nombre para luego utilizar el archivo. Es decir, si lo veis más fácil con otro elemento que no sea el JComboBox, pues acepto sugerencias. He probado con el JComboBox porque me aprecia el mas indicado y fácil de hacer.

Gracias de antemano!
Un saludo!
#4
Java / fichero llamado por fecha
1 Abril 2009, 16:50 PM
Hola de nuevo.

Tengo otra duda. Necesito crear desde un programa en Java un fichero que se llame por el día,mes y año del día que se ejecute. Es decir, yo ahora ejecuto el programa y se tiene que crear un fichero llamado: "010409.txt", como puedo hacerlo?

Gracias de antemano!
Un saludo!!

P.D.: Crear el fichero sé, lo que no se es como ponerle ese nombre.
#5
Hola! que tal todo?

Soy un poco nuevo en Java y estoy haciendo unos cuantos programas chorras para practicar y resolver dudas que aunque parezcan tontas, puede ser útil saberlas resolver para el día de mañana  ;D

A ver, la duda que tengo es: tengo una Ventana1 desde la cual, al apretar un botón se abre Ventana2. Entonces hago la función del botón y pongo:
new Ventana2.setVisible(true);

Asta aquí todo bien, la cosa es... ahora como hago que Ventana1 "desparezca"?

La otra duda es, como se maneja el "password field"? es decir, como pido lo que ha puesto el usuario, o como puedo compararlo con la String que yo quiero poner como Password?

Muchas gracias de antelación!
Un saludo!!
#6
Hola! Que tal todos¿?

Despues de llevar ya bastante tiempo sirviendome de la sabiduria de muchos foreros de poraquí y podiendo aportar muy poco he pensado en sugerir una mejora.

Despues de ver el post de "sarkis" en el post http://foro.elhacker.net/gnulinux/redes_en_linux-t212338.0.html se me ha ocurrido la idea de implementar en tutoriales o un apartado dedicado a la publicación de cursos online que esten interesantes, así como poder crear un post para cada curso en el que la gente participe y así podernos ayudar mutuamente. Creo que seria una buena manera de que la gente pueda aprender más aparte de que es una exitación al aprendizage.. ayudar a la gente a encontrar estos tipos de cursos y saber que tendran el apollo de el foro a superar-lo y poder aprender de ellos bién es una buena motivación... no¿?  :huh:

jeje! Bueno, que os parece la idea!?

Un saludo a todos!
Espero que os sea de agrado y sirva mi pequeña aportación!  :)