2011-09-06 25 views
6

Acabo de crear un archivo jar usando jdk7. Intenté ejecutarlo, pero seguí recibiendo un error. Resultó que apuntaba a jre6 y no a jre en jdk7. Por lo tanto, he usado el siguiente comando para cambiarjava puede ejecutar jar desde cmd pero no haciendo doble clic en

ftype jarfile = "C: \ ruta a jre \ bin \ javaw.exe" jar "% 1" % *

Después de eso, me trataron de duplicar haga clic en mi archivo jar nuevamente, pero apareció una ventana pidiéndome que elija un programa para abrirlo. Cuando elegí el mismo archivo javaw.exe que el anterior, se ejecuta pero sale inmediatamente sin hacer nada. Puedo ejecutarlo bien en cmd haciendo el comando java -jar file.jar. Incluso traté de eliminar la clave de registro .jar, pero eso me devolvió al punto en que me pidió elegir un programa para abrir. Estoy ejecutando Windows 7 ultimate si eso es importante.

EDITAR: En el registro hay 3 subclaves: OpenWithList, OpenWithProgids y UserChoice. Cambié todos los valores predeterminados a la ruta anterior, excepto UserChoice, que no me permite editarlo desde regedit. Cuando elimino eso y trato de ejecutar el archivo jar, abre la opción de elegir un programa para abrir con ventana nuevamente. Por alguna razón, ignora las otras claves de registro

Respuesta

0

No estoy seguro de por qué ninguna de las soluciones funcionó, pero volví a instalar jre7 y funciona ahora.

2

Cuando Windows le solicita un programa para ejecutarlo, no insertará el argumento -jar necesario en la línea de comando.

Si le pide el exe en el que ejecutarlo, significa que de alguna manera su JRE no está asociado con la extensión .jar. Tendrá que modificar la entrada de registro de archivos .jar para que funcione c:\path_to_jre\bin\javaw -jar %1 para que funcione.
Solía ​​estar debajo de File Explorer > Tools > Folder Options > File Types.

A continuación, busque .jar allí. Debería encontrar un campo de texto que muestre el ejecutable que se ejecutará y los argumentos de la línea de comando. Eso es lo que quieres modificar. También puede hacerlo en el editor de registro, pero olvidé la ruta de la variable HKEY. Estoy seguro que esto ayudará a KBA:

support_microsoft_kb_950505

+1

Eso la asociación es exactamente lo que está haciendo el comando 'ftype' mostrado por jhlu87. –

0

¿No es más fácil de cambiar su versión de Java para JDK7 Rnuevo cambiando la variable CLASSPATH medio ambiente? Ver cómo here

+0

mi classpath está configurado en la ruta correcta – jhlu87

1

Comprobar si el tipo de archivo es en realidad jarfile registrado en la extensión * .jar usando

assoc .jar 

Parece que .jar no está vinculada a jarfile.

+0

Sí, lo he hecho. vuelve .jar = jarfile – jhlu87

11

Bien, encontré la respuesta en otro lugar pero volví a encontrar con este problema así que vine aquí a través de google.
La solución es ...

  1. Abra regedit.exe
  2. O buscar "jre6" o seguir esto:
    HKLM->SOFTWARE->Classes->jarfile->shell->open->command
  3. Cambie el campo de datos en el directorio de la javaw .exe archivo que está en su directorio JDK.
  4. Por el amor de Dios, no se olvide de poner los extraños [-jar "%1" %*] partes en el final de la misma.
  5. Disfruta engañando a Oracle.

Esperamos que esto les ahorrará a algunas personas un poco de tiempo.

Esto me pasó a mí cuando he instalado el plugin para Chrome JRE6, a pesar de que podría ocurrir al instalar cualquier otro JRE supongo.

+0

La llave correcta para mí (Win7) fue HKEY_CURRENT_USER \ Software \ Classes \ jar_auto_file \ shell \ open \ command como la asociación "global" se perdió por completo y me había tratado de abrir el frasco con "OpenWith" –

4

me fijo por ir a regedit y buscó JRE que hizo subir ...

HKEY_CURRENT_USER/Software/Clases/Aplicaciones/javaw.exe/cáscara/abierto/comando

he cambiado el REG_SZ

de: "C: \ archivos de programa (x86) \ Java \ jre7 \ bin \ javaw.exe" "% 1"

a: "C: \ archivos de programa (x86) \ Java \ jre7 \ bin \ javaw.exe" jar "% 1" % *

+0

editar todas las rutas y eso ayudó –

Cuestiones relacionadas