2012-03-09 9 views
9

He creado un editor de texto usando Java, y lo he empacado en un archivo jar usando Netbeans. Ahora creé un archivo de texto, con una extensión de ".text". Estoy en Windows 7, así que al usar su ventana de propiedad cambié el programa de apertura predeterminado al archivo jar de mi editor de texto.¿Utiliza una aplicación Java como el programa predeterminado para un tipo de archivo en particular?

Ahora, cuando hago doble clic en el archivo con la extensión ".text", Windows muestra un cuadro de diálogo que dice "{file name} no es una aplicación win32 válida".

Por favor, ayúdame a salir de ella ..

Gracias.

+3

no debería ser .txt – nist

+0

Si lo hago .txt, se abre con el bloc de notas, y no quiero meterme con la configuración predeterminada de la extensión .txt. Así que cambié la extensión de mi editor de texto a .text – Jaydeep

+0

la pregunta anterior era solo un experimento, estaba tratando de asociar el archivo .text con mi editor de texto, pero no funcionó, luego publiqué una pregunta sobre cómo asociar el archivo extensiones para que abra el archivo respectivo en mi editor de texto utilizando su archivo jar en Stackoverflow, (no obtuvo ans satisfactorio) y luego eliminó la pregunta. – Jaydeep

Respuesta

11

El problema es que un archivo JAR se selecciona como la "aplicación por defecto". Sin embargo, los archivos JAR normalmente son no ejecutables. Es decir, un archivo JAR es no una aplicación válida de Windows. No importa si la extensión JAR tiene asociada una aplicación predeterminada, porque el "Open verb" es no usado recursivamente en otras definiciones de "Abrir verbo".

En cambio,

  1. Crear un lote ("BAT") archivo (o pequeño envoltorio EXE) que llama java (o javaw, según el caso) y utilizar ese envoltorio ejecutable como el 'Abrir con' programa de . (Esto tendrá una ventana de consola intermedia molesto si se utiliza un archivo por lotes.) O ,
  2. Modify the registry para que el "verbo Abrir" para la extensión de la lanza a través JAR java (o javaw).

Al final, cualquiera de las formas debe ser similar a: javaw -jar TheJarFile.jar "%1%". (Tenga en cuenta que javaw es un ejecutable, mientras que TheJarFile.jar es no un ejecutable.)

Consulte java - the Java application launcher para saber cómo usar java/javaw.

+0

¡Gracias amigo! Lo tengo funcionando, creé un exe del contenedor :) – Jaydeep

+0

@Jaydeep Cool :-) ¿Qué herramienta usaste para hacer eso? –

+0

Utilicé el "Instalador avanzado" de Caphyon ... ¡Tengo que decir, una gran herramienta! – Jaydeep

-1

Puede ser porque .text no es un archivo ejecutable.

tratan de utilizar este ..

Runtime.getRuntime().exec("cmd.exe /C file"); 

Esto abrirá el archivo con el programa predeterminado.

Actualización: Me confundí primero, puede ser que no leí su pregunta correctamente. Pensé que su ejecución archivo .text directamente de un código Java ..

Runtime.getRuntime().exec("file.text"); // da error CreateProcess error = 193,% 1 no es una aplicación Win32 válida

lo que sugirió abrirla con cmd (como en responder).

Pero leyendo su escenario, parece que Windows no puede ejecutar su propio contenedor.

Para hacer su ejecutable jar, probar este ..

java -jar yourjarfile.jar ....

+0

En realidad, soy un novato, así que ¿puedes decirme dónde escribir la sintaxis anterior? – Jaydeep

+0

Hmm ... creo que lo primero dijo tener sentido ... Prueba esto primero ... java -jar yourjar. jar ........ esto hará que tu jar sea ejecutable ... y luego intenta ... –

0

Inicie el Jar usando Java Web Start. El archivo de inicio proporciona la capacidad de configurar una asociación de tipo archivo/contenido. Aquí es un demo. of the file services que ..

..prompts al usuario asociar la extensión de archivo .zzz (simplemente un tipo de archivo poco probable a chocar con las asociaciones de archivos existentes) de contenido de tipo text/sleepytime. ..

Para hacer eso en tiempo de ejecución en una aplicación JWS., Mira el IntegrationService introducido en 1.6.0_18 +.

JWS está diseñado para funcionar en Windows (y OS X & * nix).

Cuestiones relacionadas