Aller au contenu

Installation

OculiX est une application Java pure. Seul un JDK récent doit être installé séparément ; tout le reste — OpenCV, Tesseract, bibliothèques natives, données OCR — est embarqué dans le JAR.

ÉlémentMinimumRecommandé
SystèmeWindows 10 · macOS 12 · Ubuntu 20.04 LTSDernière version stable
Java (JDK)1117 ou 21 LTS
Architecturex86-64x86-64 (Apple Silicon pris en charge via Rosetta, et nativement depuis la v3.0.2)
RAM1 Go libre4 Go libres
AffichageUn écranMulti-écran pris en charge

OculiX est testé sur Eclipse Temurin et Azul Zulu — tous deux gratuits. Les autres builds OpenJDK certifiés (Liberica, Microsoft Build of OpenJDK, Amazon Corretto) fonctionnent également.

Fenêtre de terminal
java -version
# doit afficher "openjdk version "11" / "17" / "21""

Option 1 — Lancer l’IDE (le cas le plus courant)

Section intitulée « Option 1 — Lancer l’IDE (le cas le plus courant) »
  1. Rendez-vous sur la page des releases et téléchargez la dernière version oculixide-X.Y.Z.jar.

  2. Double-cliquez sur le fichier, ou lancez-le depuis un terminal :

    Fenêtre de terminal
    java -jar oculixide-3.0.3.jar

L’IDE s’ouvre avec :

  • l’Explorateur de workspace à gauche,
  • l’Éditeur de script au centre,
  • la Console en bas (log en direct + sortie d’exécution),
  • le Modern Recorder accessible depuis la barre d’outils,
  • le Welcome tab, affiché au premier lancement, avec quelques extraits de code pour démarrer.

Ouvrez un bundle .sikuli, cliquez sur Run (▶), et OculiX prend la main sur l’écran.

Lancer un script directement depuis la ligne de commande

Section intitulée « Lancer un script directement depuis la ligne de commande »
Fenêtre de terminal
# Ouvre l'IDE en chargeant un script précis
java -jar oculixide-3.0.3.jar -l mon-script.sikuli
# Charge ET exécute immédiatement (idéal pour cron ou tâches planifiées)
java -jar oculixide-3.0.3.jar -l mon-script.sikuli -e

Multi-plateforme — fonctionne sous Linux, macOS, Windows (y compris WSL).

Exécuter un script SANS ouvrir l’IDE (headless)

Section intitulée « Exécuter un script SANS ouvrir l’IDE (headless) »

Pour les pipelines CI, les tâches planifiées, ou tout scénario où vous ne voulez pas que l’interface graphique s’ouvre :

Fenêtre de terminal
# Exécute un bundle .sikuli en headless — l'IDE ne s'ouvre jamais
java -jar oculixide-3.0.3.jar -r mon-script.sikuli
# Idem avec une archive « packed source » (.zip / .skl) produite via
# File → Export packed source... dans l'IDE
java -jar oculixide-3.0.3.jar -r mon-script.zip

L’option -r indique à OculiX d’exécuter le script puis de quitter, sans jamais dessiner la fenêtre de l’éditeur. Idéal pour la distribution — vous envoyez le .zip packagé à une machine qui a Java + le jar de l’IDE OculiX installés, et le script tourne tout seul.

Option 2 — Utiliser OculiX comme bibliothèque Java

Section intitulée « Option 2 — Utiliser OculiX comme bibliothèque Java »

OculiX est publié sur Maven Central sous io.github.oculix-org :

<dependency>
<groupId>io.github.oculix-org</groupId>
<artifactId>oculixapi</artifactId>
<version>3.0.3</version>
</dependency>

Gradle :

implementation("io.github.oculix-org:oculixapi:3.0.3")

Si votre projet appelle aussi OpenCV directement, ajoutez le binaire Apertix sur lequel OculiX a été compilé :

<dependency>
<groupId>io.github.julienmerconsulting.apertix</groupId>
<artifactId>opencv</artifactId>
<version>4.10.0-0</version>
</dependency>

Apertix est un build JNA personnalisé d’OpenCV 4.10.0. Il évite les conflits classiques de System.loadLibrary quand OpenCV cohabite avec d’autres bibliothèques natives sous Windows.

Fenêtre de terminal
git clone https://github.com/oculix-org/Oculix.git
cd Oculix
mvn clean install -DskipTests

La compilation Maven produit :

ModuleArtefact
API/oculixapi-<version>.jar
IDE/oculixide-<version>.jar
MCP/oculix-mcp-server-<version>.jar
Reporter/oculix-reporter-<version>.jar
Additional-Wrappers/modules wrapper de langage

Les fat-jars sont générés par les profils Maven make-API et make-IDE. Les configurations de run IntelliJ IDEA sont versionnées dans .idea/runConfigurations/ — vous pouvez lancer l’IDE en mode dev d’un seul clic.

  • Toutes les bibliothèques natives (WinUtil.dll, binaires OpenCV JNA) sont incluses dans le JAR. Aucun PATH à configurer, aucun runtime MSVC à installer, aucune dépendance externe.
  • Multi-écran : OculiX détecte chaque Screen(n) via l’environnement graphique AWT standard.
  • High DPI : les scripts capturent et rejouent dans le système de coordonnées du système d’exploitation. Si vous enregistrez un script à 100 % et le rejouez à 150 %, le score de similarité peut baisser — utilisez Pattern("foo.png").similar(0.7f) pour élargir la tolérance.
  • Apple Silicon (M1/M2/M3) pris en charge nativement depuis OculiX 3.0.2.
  • Au premier lancement, macOS réclame les permissions Accessibilité et Enregistrement d’écran pour le runtime Java. Accordez les deux dans Réglages système → Confidentialité et sécurité — sans elles, OculiX ne peut ni bouger la souris ni capturer l’écran.
  • Le module natif MacUtil.m gère les ponts AppleScript et l’inspection de fenêtres.
  • Testé sur Ubuntu 20.04 / 22.04 / 24.04, Debian 12, Fedora 40 et Arch.
  • X11 intégralement pris en charge. Wayland fonctionne via XWayland — un support Wayland direct est prévu sur la roadmap.
  • Serveurs headless (runners CI) : utilisez le mode server runner. Voir la référence CLI.
  • LinuxSupport.java gère l’énumération des fenêtres, le focus et les particularités du presse-papier Linux.

Tesseract est embarqué d’office et suffit pour les écritures latines. Pour de l’OCR haute précision en écritures CJK (chinois, japonais, coréen) ou sur des mises en page complexes, installez le serveur optionnel paddleocrserver-powered :

Fenêtre de terminal
pip install paddleocrserver-powered
paddleocrserver
# Écoute sur http://localhost:5000

Le PaddleOCREngine d’OculiX détecte automatiquement un serveur actif sur localhost:5000. Aucune configuration nécessaire.

Le test rapide depuis l’IDE :

from sikuli import *
popup("OculiX fonctionne. Java : " + getJavaVersion())

Depuis un projet Java :

import org.sikuli.script.Screen;
public class Smoke {
public static void main(String[] args) {
Screen s = new Screen();
System.out.println("Écran principal : " + s.getW() + "x" + s.getH());
}
}

Place à votre premier script.