Avant de discuter de l'exécution d'une application avec des commandes java, Jetons un coup d'œil à ce que sont les applications Java.
Ce qui suit est une classification approximative des applications Java. L'explication est également approximative, donc si vous êtes intéressé, veuillez la vérifier vous-même.
--Application de consentement Applications qui peuvent être utilisées de manière interactive à partir de la console, telles que Prompt et Terminal. --Application de bureau Une application complète dans un seul terminal. Parfois appelé GUI. --Application Web Une application qui traite par communication entre le serveur Web et le client. --Application Android Application de bureau pour Android. (C'est une analogie) --Programme intégré Programmes intégrés directement dans le matériel tel que les appareils ménagers.
La commande java exécute principalement des applications de console et des applications de bureau.
L'exécution de la commande java lance une application Java. L'outil java démarre d'abord le JRE et charge la classe spécifiée dans la commande. Appelé à l'intérieur de la méthode main en appelant la méthode main de la classe chargée L'application sera exécutée lors du chargement d'autres classes en séquence.
Pour spécifier une classe qui a une méthode principale, Vous pouvez spécifier la classe directement ou vous pouvez spécifier le fichier JAR.
La méthode principale est publique et statique, elle prend un tableau de type String comme argument, Doit être une méthode qui vérifie qu'elle ne renvoie pas de valeur de retour.
méthode principale
public static void main(String[] args) {
//Certains traitements
}
# java [ options ] class [ argument ... ]
$ java HelloWorld "args1" "args2"
Dans l'exemple ci-dessus, la méthode principale de la classe HelloWorld est appelée et l'argument args de la méthode principale est Un tableau de type String contenant "args1" et "args2" est passé.
Pour exécuter le fichier de classe, vous devez spécifier le nom de classe entièrement spécifié. Étant donné que l'exemple ci-dessus n'a pas de configuration de package, Il pourrait être exécuté sans spécifier de package, mais si vous avez une configuration de package Vous devez spécifier le nom de la classe dans le package entièrement spécifié.
#Le répertoire actuel est/src
# /Hello World avec src comme racine du package/src/com/example/Si c'est directement sous l'application
$ java com.example.app.HelloWorld
Si vous spécifiez un fichier JAR, à partir du fichier de classe archivé dans le fichier JAR Afin d'identifier la classe de démarrage qui a la méthode principale, l'en-tête Main-Class du fichier manifeste Doit être réglé. Pour plus de détails ici, l'article suivant était facile à comprendre.
Article de référence: Introduction aux fichiers JAR @ hiwm0126
Pour démarrer le fichier JAR, spécifiez l'emplacement du fichier JAR. (Le chemin absolu et le chemin relatif sont possibles) De plus, si vous spécifiez un fichier JAR pour la classe de démarrage, vous devez ajouter l'option -jar.
#Le répertoire actuel est/(racine)
# /lib/jars/sample-app.Exécuter le pot
$ java -jar /lib/jars/sample-app.jar
--- classpath (ou -cp)
$ java -Dsun.boot.class.path="/sample/path" SampleApp
Classe SampleApp
//Définir la valeur "/sample/"chemin" peut être obtenu
System.getProperty("sun.boot.class.path");
Cette option active ou désactive les assertions Java. L'assertion est désactivée par défaut.
--- activer les affirmations (ou -ea): <portée> Activez les assertions. Il existe les types suivants de spécifications de plage d'application.
Activé dans la classe spécifiée.
HotSpot est un terme général désignant les technologies intégrées dans les JVM pour accélérer le traitement. Un type de compilateur JIT (compilateur d'exécution) qui utilise uniquement des méthodes qui ont été exécutées un certain nombre de fois ou plus. Il existe un mécanisme d'optimisation du traitement tel que la compilation.
HotSpot inclut Java HotSpot Client VM (version client) et Java HotSpot Server VM (version serveur) Il existe deux types, chacun présentant les caractéristiques suivantes.
--Version client Concentrez-vous sur les classes et méthodes importantes à compiler et concentrez-vous sur le chargement rapide. --Version du serveur Il se compile dans son ensemble, le chargement est donc lent, mais nous nous concentrons sur l'optimisation.
Les options suivantes permettent de spécifier le HotSpot à utiliser.
Java a un mécanisme pour utiliser des programmes codés autres que Java. Avec des agents (clients JVMTI) via l'interface Java Virtual Machine Tool (JVMTI) Il peut être utilisé en échangeant. Cet agent est une variété d'outils implémentés dans des langages autres que Java.
Les options suivantes sont des options d'utilisation de ces bibliothèques d'agents natifs.
--- agentlib: <nom de la bibliothèque> =
Maintenant, exécutons l'exemple de code.
Dans l'exemple de code, «NG» s'affiche lorsque Null ou un caractère vide est passé. Dans d'autres cas, 3 résultats de traitement de la méthode qui renvoie la chaîne de caractères d'argument sont affichés. Vous devriez voir trois lignes, "NG", "NG" et "Hello World!".
#Le répertoire actuel est/java-sample/src
$ java -cp /java-sample/lib/commons-lang3-3.10.jar:/java-sample/src com.example.app.UseCommons
#Voici le résultat de sortie
NG
NG
Hello World!
Recommended Posts