Catégorie : Windows

Articles sur MS Windows

Les différentes VM Java (JVM)

Il existe plusieurs VM Java pour différent système d’exploitation (voir la liste si dessous).

Dans ma recherche de binaire JVM  exploitable en production, sur des systèmes Windows, Mac, Linux, et pouvant être packager dans un kit d’installation j’ai référencé 3 JVM  :

Toutes sont basées sur OpenJDK et supportent les versions 8 et 11 de Java.
Dans cette liste, la version Hotspot d’Oracle à deux URLs de téléchargement adoptopenjdk et java.net. Le binaire qui se trouve chez Oracle (java.net) ne permet plus d’être package dans un kit d’installation et sa mise à jour nécessite un accord commercial avec Oracle (payant).

Il reste donc deux sites web ou trouvera un binaire pour Windows, Linux, Mac :

Si vous votre cible est Linux, je vous conseille d’étudier l’usage de Grall VM CE qui génère un exécutable (et donc, accélère les lancements)

Si votre cible est un mini-ordinateur (ex Raspberry PI) ou un mini soc (Arduino , ATmega328p) , de regarder du côté de  Haiku

Pour plus de détail, regarder la liste si dessous.

Liste des JVM libres

 

Nom Sytème d’exploitation Particularités
Amazon Corretto
  • Linux
  • MacOs
  • Windows
  • Docker
Implémentation Java par Amazone. Utilisé sur ses serveurs AW cloud

Licence : « Amazon Corretto peut être téléchargé et utilisé gratuitement. Il n’y a aucune restriction ou fonctionnalité payante supplémentaire. »

Web : https://aws.amazon.com/fr/corretto/

Azul Zulu
  • Linux
  • iOS
  • Windows
Libre à télécharger pour utilisation.

A priori libre pour projet OpenSource, sinon payant.

Si vous voulez la fournir  dans un « objet » c’est payant 😉

Mais c’est une des rares JVM à pouvoir faire du temps réel.

Web : https://www.azul.com/downloads/zulu/#mac

Bck2Brwsr Navigateur Internet (Moderne et IE 10+) Convertie le Byte code Java en JavaScript

Web : http://wiki.apidesign.org/wiki/Bck2Brwsr

CACAO Étude académique

Utilise GNU classpath

Licence : GPL 2

Web : http://www.cacaojvm.org/

Codename One / ParparVM
  • iOS
JVM fournit par Codename pour le portage d’application Java

https://github.com/codenameone/CodenameOne/tree/master/vm

DoppioJVM
  • Navigateur Internet
JVM (Java 8) écrite en JavaScript pour fonctionner sur les navigateurs Internet

web : https://plasma-umass.org/doppio-demo/

Eclipse OpenJ9
  • MacOS
  • Linux
  • Windows
Développé par IBM et Apache.

Licence : Apache 2

web : https://www.eclipse.org/openj9/

https://adoptopenjdk.net

GraalVM CE
  • Linux x86/x64)
  • Mac
VM polyglotte (Java, JavaScript, Scala, Kotlin, Clojure, NodeJS, Ruby, R, Python, ..) qui compile l code et donne un exécutable sous Linux ou MaOS

Web : https://www.graalvm.org/

HaikuVM
  • Arduino
  • Raspberry PI 3
  • esp8266
  • La brique Lego RCX
  • AVR (e.g. ATmega8, ATmega328p),
  • UBUNTU,
  • WINDOWS
  • ASURO robot
Rapide

Très peu gourmande en mémoire

Acsés directe à la mémoire et au x entrés/sortie (IO)

Fonction  C/C++ et bibliothèque directement appelable au travers d’annotation @NativeCFunction / @NativeCppFunction

Site : https://sourceforge.net/projects/haiku-vm/

HotSpot
  • Linux
  • MacOS
  • Windows
La version Oracle de la JVM Java.

web : http://openjdk.java.net/groups/hotspot/

Jamiga
  • AmigaOS (68k)
  • AmigaOS 4 (PPC)
  • AROS (x86)
  • MorphOS (PPC)
VM Java pour Amiga.

Licence : GPL

Web : https://github.com/jaokim/jamiga-jamvm

JamVM
  • Linux: x86, x86_64, ARM, PowerPC, PowerPC64(*), MIPS, HPPA
  • FreeBSD: x86, x86_64, ARM, PowerPC, PowerPC64(*), SPARC(*)
  • OpenBSD: x86, x86_64, ARM, PowerPC, PowerPC64(*), SPARC(*)
  • Mac OS X/Darwin: x86, x86_64, ARM, PowerPC, PowerPC64
  • Solaris/OpenSolaris: x86, x86_64
  • KFreeBSD: x86
JVM désigné pour être compacte

Dernière version date de 30 juillet 2016

supporte Java 6, 7, 8

Utilise le classpath de GNU

Licence : GPL

Web : http://jamvm.sourceforge.net/

Jelatine JVM
  • Unix
JVM de Java 2 Micro Edition

Web : https://sourceforge.net/projects/jelatine/

Jikes RVM
  • IA-32 Linux ®
  • PowerPC 64 Linux ® (big endian)
  • OS X
  • Solaris
  • PowerPC 32
JVM désigné pour l’étude  et la recherche de VM.

Licence : Eclipse Public License

JVM.go JVM Java écrit en go

Web : https://github.com/zxh0/jvm.go

leJOS
  • Lego MindsStorms
JVM Java dédié à Lego MindsStorms

Web : http://www.lejos.org/

Maxine
  • MacOs
  • x64,
  • ARM32,
  • AArch46,
  • RISC-V
  • Linux Ubuntu 16.04/18.04 sur :
    • x86,
    • Aarch64,
    • ARMv7
Licence : GPL 2

Web : https://github.com/beehive-lab/Maxine-VM

Multi-OS Engine MacOS Portez vos applications Android ou écrivez des applications Java pour Mac

Web : https://multi-os-engine.org/

Redhat Windows Port de OpenJDK par RedHat
RopeVM JVM de projet de recherche Chinois.

Développer par des Chinois.

Web (chinois) : https://github.com/duyanning/ropevm

SAP Windows

Linux

  • x86
  • ppc

MacOS

JDK et JRE développé par SAP

 

Web : https://github.com/duyanning/ropevm

 

Liens utiles (en Anglais) :

Étude sur les différences des JVM: https://en.wikipedia.org/wiki/Comparison_of_Java_virtual_machines

Liste des JVM passés et présente : https://en.wikipedia.org/wiki/List_of_Java_virtual_machines

Activer en permanence, bloquer la touche « Fn » des claviers « Microsoft Sculpt Mobile Keyboard »

Si comme moi vous avez acheté un clavier « Microsoft Sculpt Mobile Keyboard« , vous avez remarquer que les touches fonctions « F1 » à « F12 » n’étaient accessibles que si vous appuyer sur la touche « Fn« . Cette inversion des touches fonctions n’est pas très pratique, d’autant plus que les touches définies par défaut ne sont pas souvent utilisées, voire inutile.

De plus la documentation du clavier est tellement succincte que je ne sais pas à quoi servent les touches bleues se trouvant à la place des touches F10 à F12.

Donc , comment revenir à l’usage normal des touches F1 à F12 ? La doc n’indiquant rien  !

La solution est d’appuyer simultanément sur les deux touches « Ctrl » (droite et gauche) + la touche « Fn« . Cella aura pour effet de passer le clavier dans un mode ou la touche Fn est continuellement appuyé. Ce qui vous permettra d’accéder aux touches F1 à F12 avec un seule doit 😛

Pour débloquer l’appui continuel sur la touche Fn , appuyer simultanément sur les touche « Fn » et Ctrl de droite.

Noter : sur d’autres claviers la combinaison de touche est différente :

  • Ctrl+Alt+Fn
  • Fn + Verr-Maj
  • Ctrl(gauche) + Ctrl(droite) + Fn
    Pour inverser (état originel) Ctrl (droite) + Fn

Windows 10 Creator : nouveautés de Bash Unbutu 16.04 …

Ce mardi 11/04/2017 Microsoft va publier la mise à jour « Windows 10 Creator« .
Elle contient des améliorations du logiciel de dessin Paint, un nouveau logiciel pour la 3D Paint 3D, plus de contrôle sur les données de télémétrie et sur le mécanisme de mise jour automatique. Mais quand est-il du Bash Ubuntu ?

Note: les :mrgreen: signale une mise à jour (19/04/2017) récente de cet article

Microsoft et Ubuntu ont corrigé beaucoup de bogues et ont aussi implémenté des fonctions Linux manquantes :

  • Passage à Ubuntu 16.04. Si vous avez déjà installé le Bash, vous devez lancer un « sudo do-release-upgrade » depuis le Bash. Sinon  désinstaller la Bash puis réinstaller en tapant les deux commandes suivantes :
    C:\> lxrun /uninstall /full /y
    ....
    C:\> lxrun /install
  • possibilité de lancer le bash avec une commande :
    bash.exe -c <ma commande à lancer>
  • possibilité de lancer directement une application Windows. Il faut taper son nom complet avec le « .exe ».
    Par exemple dans le bash, taper « notp » suivit de la touche « tab » (oui, la complétion fonctionne), il vous propose « notepad.exe », appuyer sur « entrée« , Notepad se lancera 🙂
  • Implémentation de la fonction système « timer-create ». Elle est utilisée par Ruby ce qui empêchait certains des programmes implémentés en Ruby de fonctionner (ex Pandoc) sans devoir utiliser un artifice.  Maintenant sans rien faire Pandoc fonctionne ! voir l’article : Convertir un document Asciidoc en OpenDocument (ODF, LibreOffice) avec Pandoc
  • maintenant, les commandes ifconfig, ping, nslookup, whois fonctionnent parfaitement  😉
  • :mrgreen: La notification des changements fichiers fonctionne . Cella permet une meilleure intégration des NodeJs, Ruby, Python avec les « watch« .
  • :mrgreen: meilleure gestion des sockets, datagram, IPV6, serial etc..
  • :mrgreen: meilleure gestion des commandes vidéo (donc le mode couleur 24-bit) de la console « VT ». Ainsi une console peut être partagée en plusieurs écrans. Ainsi Tmux, Emacs, vim, midnight commander sont mieux intégrés …
  • :mrgreen: meilleure intégration de la gestion de la souris .
  • :mrgreen: possibilité de faire des liens « link » sans devoir passer par une augmentation de privilège (UAC) de Windows.
  • Et l’affichage des fichiers de processus Linux « /proc » fonctionne de mieux en mieux. Essayer les commandes suivantes :
    • more /proc/1/net/ipv6_route
    • more /proc/sys/net/core/somaxconn
    • more /proc/version_signature
    • more /proc/sys/kernel/sem

:mrgreen: Ubuntu Bash est très performant, sauf au niveau accès disque, car il utilise une surcouche par dessus NFS. Vous trouverez plus d’information sur la page suivante (Anglais) :

https://www.phoronix.com/scan.php?page=article&item=windows-10-lxcore&num=1

 

d

 

Windows 10 (Vista, 7 et 8) Fichiers fantômes, fichier supprimé mais toujours présent en cache ?

Saviez-vous que Windows 10 (de Vista à 10) géré des fichiers caches/fantômes de vos applications ?
J'ai une vieille application, créer sous Windows XP qui est capable de se mettre à jour automatiquement (sans passer par un kit de mise à jour). Voulant lui mettre à un jour un de ses jars (pour tester), je le copie par-dessus celui existant. Je la relance et là je m’aperçois qu'elle fonctionne toujours avec l'ancien jar. je réitéré l'opération, rebelote, même chose.
Je décide donc de supprimer le jar pour rendre non fonctionnelle mon application afin de bien vérifier que ce n'est pas une erreur de ma part. Je lance l'application, elle fonctionne toujours !
Mon jar est un fichier fantôme (ou caché par le système ) ?

Lire la suite

Convertir un document Asciidoc en PDF : Asciidoc-pdf

Sous Linux et Windows 10, il existe plusieurs outils de conversions d'un document Asciidoc en PDF.

Le plus simple est d'utiliser l'éditeur AsciidocFX qui à un icône pour sauver en PDF. Mais vous ne pouvez pas automatiser la tâche au travers de ligne de commande.
Et la configuration du format du fichier de sortie n'est pas du tout aisée (fichier XML, manque de documentation).

Une autre solution est d'installer "Asciidoctor PDF" ...

Lire la suite

Un Terminal Bash sous Eclipse Windows 10 Pro

Depuis que Microsoft à incorporé un Bash (Linux Ubuntu) nativement dans la version Pro de Windows 10, il nous manquait son intégration dans Eclipse. Problème résolu grâce au plug-in « TM Terminal« .

Le plug-in « Tm Terminal » de la fondation Eclipse permet de lancer dans une vue avec un terminal de votre choix :

  • ligne de commande Windows « cmd.exe »
  • Bash GIT
  • et tout autre terminal que vous configurez dont le Bash (Ubuntu) de Windows 10 :

Vous le trouverez chez Eclipse Market :

Par défaut le plug-in n’est pas configuré pour le « Bash Ubuntu Windows« , il faut l’ajouter.

Pour installer le plug-in déplacer le l’icône suivant dans Eclipse et suivez les instructions :
Drag to your running Eclipse workspace.

  • une fois le plug-in installer aller dans le menu « Préférence/Terminal » :
  • cliquez sur « Add »
  • écrivez « Bash » dans le chemin « Name »
  • dans le champ « Path » saisissez « C:\Windows\System32\bash.exe »
  • puis cliquez sur « Ok »

Pour lancer le terminal taper sur « Ctrl+Alt+Shitf+T » puis choisissez « Bash » :

Et voilà :