2011-04-13 27 views

Respuesta

0

Si la aplicación. tiene una GUI y puede distribuir desde un sitio web, Java Web Start ofrece la mejor solución. JWS funciona para todas las plataformas que admiten Java y es compatible con Oracle.

(He oído que funciona bien para .Net 'sólo' de Windows soluciones.)

+0

Mi aplicación no tiene GUI. "Java Web Start" puede ser una buena solución, pero quiero crear un archivo .exe desde el archivo .jar del instalador de Izpack. –

+1

¿Sabías que "izpack2exe"? –

8

Andrew siempre le gusta promover Java Web Start la tecnología desde el principio :) Es una buena tecnología. Pero, también necesita aprender las partes técnicas primero antes de poder comenzar a jugar con ellas.

De lo contrario, se quedan con el modelo de distribución EXE de estilo antiguo de la siguiente manera ...

No estoy familiarizado con IzPack de todos modos. Sin embargo, existen herramientas separadas similares para lograr el resultado combinado de lo que izPack puede hacer. Mis herramientas favoritas de creación EXE e instalador son Launch4J + InnoSetup + tarea Ant que va desde Eclipse IDE.

Launch4J es un iniciador de aplicaciones Java. InnoSetup es un creador de instalación La tarea Ant ayuda a los desarrolladores en los pasos de compilación e integración.

Cómo utilizar Launch4J + InnoSetup + Ant tarea de construcción + Eclipse IDE: http://www.eteks.com/tips/tipCreationExe.html (en francés - utilizar Google translate)

Cuando usted está pensando en distribuir un archivo EXE de Windows de escritorio basado en Java aplicación, también debe pensar en el entorno de destino. Está bien cuando se dirige a Windows XP o una versión menor. Sin embargo, comenzará a ser una gran frustración cuando desee que funcione correctamente en Windows Vista y Windows 7.

Es mejor no almacenar configuraciones de aplicaciones, archivos temporales, etc. que requieren guardar en %ProgramFiles% en Windows Vista/Windows 7 como ahora se convierte en una de solo lectura carpeta. Use la carpeta de perfil del usuario para tal fin.

Por supuesto, se puede prescindir de ella mediante la ejecución de su aplicación con "Ejecutar como Administrador" pero se trata de la siguiente configuración:

Windows Vista y Windows 7 han introducido una política de acceso estricta de usuario a través de la Función de solicitud de control de acceso de usuario (UAC) . La instalación del software debe realizarse utilizando una cuenta de usuario en el grupo Administradores. Todas las carpetas en el sistema predeterminado de Windows Program Files están configuradas en de solo lectura y pueden causar un problema en cuentas de usuario no administrador al intentar guardar algo en él.Para ejecutar la aplicación Java utilizando una cuenta de usuario no administrador , las propiedades de la aplicación deben establecerse en habilitar Run as administrator. Se creará un acceso directo en el escritorio y se configurará para habilitar Run as administrator también.

¿Cómo resolver los siguientes problemas:

(1) Emisión con AppUserModelID soporte de Java en Windows Vista/Windows 7 necesita la siguiente solución: Launch4j, NSIS, and duplicate pinned Windows 7 taskbar icons

(2) Problema con Run as Administrator para una aplicación de Java necesita la siguiente solución: Request admin privileges for Java app on Windows Vista

Además de esos, también debe verificar %ProgramFiles% cuando se ejecuta en la versión de Windows de 64 bits. La ruta no es la misma entre Windows de 32 bits y Windows de 64 bits. En Windows de 64 bits, todas las aplicaciones de 32 bits entrarán en %ProgramFiles(x86)%.

Por lo tanto, tenga cuidado al usar el valor de la ruta del archivo codificado a la carpeta de la aplicación Java y las subcarpetas que están instaladas en %ProgramFiles%. Es mejor configurar un Windows environment variable que puede ser generado por InnoSetup en el siguiente fragmento de archivo ISS. Uso de Java System.getenv("MYAPP_HOME") para recuperar la variable:

[Registry] 
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; Flags: uninsdeletevalue; ValueType: string; ValueName: "MYAPP_HOME"; ValueData: "{app}\" 

[Tasks] 
Name: modifypath; Description:"Add application directory to your environmental path"; Flags: unchecked 

[Run] 
Filename: "{app}\MyApp.EXE"; Parameters: """{app}""\"; WorkingDir: "{app}\"; Description: "Run MyApp"; Flags: postinstall nowait skipifsilent 

[Code] 

const 
    ModPathName = 'modifypath'; 
    ModPathType = 'system'; 

function ModPathDir(): TArrayOfString; 
begin 
    setArrayLength(Result, 1) 
    Result[0] := ExpandConstant('{app}'); 
end; 
#include "modpath.iss" 

Experimentar y disfrutar!

+0

"Java Web Start" puede ser una buena solución, pero quiero crear un archivo .exe desde el archivo .jar del instalador de Izpack. –

+0

¿Sabías que "izpack2exe"? –

0

winrun4j es muy fácil de usar, mi único problema es que, a menos que esté distribuyendo con una JVM incorporada, probablemente tenga que proporcionar tanto una descarga de 64 bits como una de 32 bits.

Cuestiones relacionadas