Foros del Web » Programación para mayores de 30 ;) » Java »

especie de instalador en java

Estas en el tema de especie de instalador en java en el foro de Java en Foros del Web. Tema: Manejo de Archivos en Java Introducción: La idea es hacer un programa que sirva como instalador en windows parecido al instalador de DeepFreeze, es ...
  #1 (permalink)  
Antiguo 04/09/2008, 15:41
 
Fecha de Ingreso: septiembre-2008
Mensajes: 3
Antigüedad: 15 años, 7 meses
Puntos: 0
especie de instalador en java

Tema: Manejo de Archivos en Java

Introducción:
La idea es hacer un programa que sirva como instalador en windows parecido al instalador de DeepFreeze, es decir instalar con un ejecutable y desinstalar con ese mismo ejecutable.

El instalador debe ser solo 1 ejecutable (.jar), el cual solo contiene un archivo .jpg que debe copiar en una carpeta del computador y los demás son comandos que ejecutara java.

El archivo .jpg debe quedar dentro del ejecutable que crea java por lo tanto lo que hago es meterlo en una carpeta dentro de nombredelproyecto/src llamada recursos. Con lo anterior, el archivo ya se puede ver en Netbeans y cuando lo compilo (Build main project) queda dentro del ejecutable (.jar) que crea java.

He probado con los métodos tradicionales para el copiado (FileInputStream y FileOutputStream) y hasta he logrado copiar archivos que están en una carpeta del computador a otra carpeta del computador, pero no sé cómo hacer referencia al archivo que quiero que quede dentro del proyecto (.jpg).

Pregunta:
¿cómo hago para copiar ese archivo que está dentro del proyecto a una carpeta del computador? ¿cómo hago para que java encuentre ese archivo y así pueda utilizar la forma tradicional para copiar archivos con java (con FileInputStream y FileOutputStream)?

Agradezco su ayuda.

Ivan.
  #2 (permalink)  
Antiguo 05/09/2008, 00:56
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: especie de instalador en java

Aquí tienes dos ejemplos de como cargar recursos (ficheros) dentro de un .jar,de ahí a escribirlos donde quieras sólo hay un paso.

http://www.javaworld.com/javaworld/j...javatip49.html
http://www.java-tips.org/java-me-tip...-jar-file.html

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #3 (permalink)  
Antiguo 05/09/2008, 12:36
 
Fecha de Ingreso: septiembre-2008
Mensajes: 3
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: especie de instalador en java

Agradezco mucho la respuesta, realmente me ha sido de gran ayuda.

Conclusión:

Se puede aplicar el mismo metodo para copiar archivos simplemente se debe cambiar el InputStream. Se debe cambiar InputStream in = new FileInputStream(src); por InputStream in = getClass().getResourceAsStream("archivo");

A mi me funcionó con el siguiente codigo:

Código:
       
      try {
            InputStream in = getClass().getResourceAsStream("recursos/foto.jpg");
            OutputStream out = new FileOutputStream("C:/Users/UsuarioX/Documents/foto.jpg");

            byte[] buf = new byte[1024];
            int len;
            while ((len = in.read(buf)) > 0) {
                out.write(buf, 0, len);
            }
            in.close();
            out.close();
            System.out.print("Copiado con exito");
        } catch (Exception e) {
            System.out.println(e);
        }
Ahora encontré otro problema, el archivo .JAR se puede descomprimir fácilmente con WinRAR lo cual no deseo que se pueda hacer ya que es un instalador.

Voy a averiguar como colocarle seguridad al archivo .JAR para que no se pueda descomprimir aunque si me pueden ayudar se los agradecería mucho.

Ivan.
  #4 (permalink)  
Antiguo 05/09/2008, 14:44
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: especie de instalador en java

Los ficheros .jar son ficheros .zip con un descriptor dentro especial, y como la maquina virtual necesita leer los contenidos, no creo que puedas protegerlos realmente.

Si total vas a copiar los recursos en el ordenador donde lo instales.. ¿que problema hay si lo descomprimen?
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #5 (permalink)  
Antiguo 15/09/2008, 15:08
 
Fecha de Ingreso: septiembre-2008
Mensajes: 3
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: especie de instalador en java

Gracias por la respuesta y presento disculpas por no haber respondido antes.

El motivo por el cual deseo proteger los archivos es hacer un poco más difícil el plagio de los recursos con los que cuenta el programa. Entiendo que van a ser copiados al computador y pueden ser copiados fácilmente pero, por lo menos, deben buscar el lugar donde el instalador lo ha copiado. Ahora que pienso, sería bueno poder monitorear el estado del archivo copiado al computador, para que informe al programa en el caso que este archivo trate de ser "plagiado" y pues lógicamente que actúe para evitarlo. Esto no quiere decir que no desee compartir el conocimiento, porque debo admitir que compartir ayuda al desarrollo de la sociedad, más bien sería bueno que la gente que quisiera usar los recursos del programa primero se contactara y que con gusto uno le colaborara como se hace en los foros, seria ilógico de mi parte solicitar ayuda para después negarla a otros que la necesitan.

Ahora continuando con el desarrollo del instalador, se me ha presentado otro problema, al intentar copiar el archivo a una carpeta del sistema me indica que no tengo permisos (Acceso denegado), cabe indicar que estoy programando para Windows Vista. He leído sobre la firma digital del programa para permitir el acceso a este tipo de archivos pero realmente aun no tengo la certeza que con la firma digital sea posible obtener los permisos de administrador para copiar los archivos. A su vez, al intentar ejecutar algunos comandos DOS desde java se presenta el mismo inconveniente, el usuario no cuenta con permisos para completar las acciones requeridas.

Estoy consultando sobre estos temas y a medida que solucione estos percances los tratare de publicar en este foro.

Agradezco cualquier sugerencia.

Iván.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:26.