Esta solución está probada en Windows 10 PRO a fecha 10/05/2020

 

Para poder restablecer el comportamiento esperado de javaw.exe y conseguir que al hacer doble click sobre un archivo .jar se abra y ejecute el programa de java en un entorno con ventanas, tienes que seguir estos pasos:

 

Elimina la siguiente rama del registro de windows con Regedit:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jar

 

Ejecuta desde una consola con permisos de administrador:

assoc .jar=jarfile
ftype jarfile="C:\program files\java\jre1.8.0_251\bin\javaw.exe" -jar "%1" %*

(cambia la ruta a javaw.exe por la que tengas en tu ordenador)

 

La rama del registro de windows HKEY_CLASSES_ROOT\.jar tiene que tener lo siguiente: 

Predeterminado      REG_SZ      jarfile

 

La rama del registro de windows HKEY_CLASSES_ROOT\jarfile tiene que tener:

shell
open
command
Predeterminado REG_EXPAND_SZ "C:\program files\java\jre1.8.0_251\bin\javaw.exe" -jar "%1" %*

 

Por último debes activar las variables de estado de Windows referentes a Java:

 

Doble click en el icono "Este Equipo" en el escritorio, se abre la ventana y en la opción de la izquierda: Configuración Avanzada del Sistema, se abrirá la ventana Propiedades del Sistema, nos vamos a la solapa Opciones avanzadas, pulsamos el botón de abajo: Variables de entorno.

 

Tenemos que añadir o modificar las siguientes "Variables del Sistema":

JAVA_HOME=C:\program files\java\jre1.8.0_251

Pulsamos Editar en la variable PATH y añadimos C:\program files\java\jre1.8.0_251

 

Recuerda cambiar la ruta de Java por la tuya en todos los casos.

 

Para ejecutar la herramienta System Update Readiness, sigue estos pasos:

  1. Escribe cmd en el cuadro de búsqueda.
  2. En la lista de resultados, haz clic con el botón derecho del ratón en Símbolo del sistema y, a continuación, haz clic en Ejecutar como administrador.
  3. En la ventana del símbolo del sistema, escribe los comandos siguientes exactamente como aparecen. Pulsa la tecla ENTER después de cada comando:
    • DISM.exe /Online /Cleanup-image /Scanhealth
    • DISM.exe /Online /Cleanup-image /Restorehealth
  4. Para cerrar el símbolo del sistema escribe Exit y pulsa ENTER.
  5. Ejecuta Windows Update de nuevo.

Si has querido realizar una tarea programada con Windows 10 te habrás dado cuenta de que MicroSoft da por obsoletas las opciones de enviar un email o mostrar un mensaje.

accion tarea

Es evidente que lo hacen para potenciar el uso de PowerShell y de este modo incrementar su difusión. Así es que nosotros vamos a hacer un Script de PowerShell para enviar un email desde la consola y luego vamos a crear una tarea programada que lo ejecute.

El Script puede ser por ejemplo así:

$EmailPropio = "Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.";
$EmailDestino = "Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.";
$Asunto = "El asunto del email"
$Mensaje = "El cuerpo del mensaje"
$ServidorSMTP = "smtp.gmail.com"
$ClienteSMTP = New-Object Net.Mail.SmtpClient($ServidorSMTP, 587)
$ClienteSMTP.EnableSsl = $true
$ClienteSMTP.Credentials = New-Object System.Net.NetworkCredential("usuario", "contraseña");
$ClienteSMTP.Send($EmailPropio, $EmailDestino, $Asunto, $Mensaje)

Solo habría que personalizar las diferentes variables con los valores que te correspondan prestando especial atención al "usuario" y "contraseña" (ojo que las credenciales van todas en una sola línea)

Una vez personalizado el Script lo tenemos que guardar en un archivo con extensión .ps1 en una carpeta accesible, con permisos suficientes al menos a nuestro usuario o al que vaya ejecutar la tarea.

Luego desde el programador de tareas seleccionamos como acción a realizar "Iniciar un programa" y en el siguiente paso escribimos lo siguiente:

powershell -file "C:\rutadelscript\nombredelscript.ps1"

script tarea

  Y al darle a siguiente luego pulsamos Sí:

script tarea2Con esto ya tendremos la tarea que envía emails. Asóciala a un evento, a un horario, a un inicio de sesión... a lo que necesites y desde ese momento tu ordenador te avisará por email de lo que suceda.

NOTA: Para asegurarnos que GMAIL envía los mensajes correctamente tenemos que habilitar el uso de "aplicaciones menos seguras" en la configuración de la cuenta de Google. Ayuda de Google.

 

Para Windows 2008

Para que se ejecuten los scripts de PowerShell en Windows 2008 hay que activarlos con el siguiente comando escrito en la consola de PowerShell: Set-ExecutionPolicy Unrestricted

Para ejecutar los scripts en PowerShell con una tarea programada hay que hacerlo sin el parámetro -file que se usa para Windows 10, de modo que quedaría así: powershell "rutadelscript\script.ps1"

 

Adjuntar un archivo al email

Si lo que queremos es enviar un email y adjuntar un archivo al mismo tiempo, el código fuente anterior hay que modificarlo un poco y dejarlo así:

$EmailPropio = "Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.";
$EmailDestino = "Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.";
$Asunto = "El asunto del email"
$Texto = "El cuerpo del mensaje"
$ServidorSMTP = "smtp.gmail.com"
$Archivo = "c:\carpeta\archivo.txt"
$Mensaje = New-Object System.Net.Mail.MailMessage
$Mensaje.From = $EmailPropio
$Mensaje.To.Add($EmailDestino)
$Mensaje.IsBodyHtml = $True
$Mensaje.Subject = $Asunto
$Mensaje.Body = $Texto
$Adjunto = New-Object Net.Mail.Attachment($Archivo)
$Mensaje.Attachments.Add($Adjunto)
$ClienteSMTP = New-Object Net.Mail.SmtpClient($ServidorSMTP, 587)
$ClienteSMTP.EnableSsl = $true
$ClienteSMTP.Credentials = New-Object System.Net.NetworkCredential("usuario", "contraseña");
$ClienteSMTP.Send($Mensaje)

No olvidar que hay que modificar los valores entre comillas por los correspondientes a cada caso particular.

 

Si Cortana te ha dejado de funcionar después de alguna actualización, no te preocupes, es bastante normal.

Lo único que tienes que hacer es reinstalar y registrar de nuevo el asistente.

Abre el terminal de comandos con permisos de administrador y ejecuta powershell, copia la siguiente línea y pulsa enter en el terminal:

 

Get-AppxPackage -AllUsers Microsoft.Windows.Cortana | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}


Una vez terminada la ejecución reinicia Windows 10 y ya tienes Cortana operativa de nuevo.