2017-09-06 7 views
0

Je voudrais imprimer un message dans la console dès que jvm démarre. est-il possible dans java de fournir un jar qui, lorsqu'il est placé sur le classpath fera jvm charger une classe au démarrage? et tout cela sans utiliser d'autres options de ligne de commande mais juste un appel java -cp standard?java: charger la classe au démarrage de jvm avec les paramètres par défaut

+0

* est-il possible dans java de fournir un jar qui, lorsqu'il est placé sur le classpath, fera charger par jvm une classe au démarrage? * Oui. * et tout cela sans utiliser d'autres options de ligne de commande mais juste un appel java -cp standard? * Non. '-Xbootclasspath' ou peut-être oui - jetez un oeil à [' DriverManager'] (http://docs.oracle.com /javase/8/docs/api/java/sql/DriverManager.html). –

+0

@Elliott Frisch: 'DriverManager', ou n'importe quelle installation basée sur le fournisseur de service en général, ne chargera les implémentations qu'à la demande et puisqu'il n'y a aucune garantie qu'une application utilise' DriverManager', il n'y a aucune garantie que les pilotes seront chargés du tout, mais même lorsqu'il est utilisé, il ne doit pas être au démarrage. – Holger

Répondre

0

classe, qui devrait être la charge le plus tôt possible, quand JVM démarre, si elle est présentée dans classpath:

public final class Singleton { 
    public static final Singleton INSTANCE = new Singleton(); 
    private Singleton() { 
     System.out.println("Startup"); 
    } 
} 

Sinon, comme mentionné -Xbootclasspath/p ou -javaagent.