2013-05-29 2 views
1

Je programme une application Java qui stocke des données et des images dans un fichier pdf. J'utilise pdfbox. J'ai vu que la boîte de pdf a un pot comme celui pour le cryptage de données qui doit être exécuté par des lignes de commande.Exécution d'un fichier jar dans une application java (pdfbox)

Existe-t-il un moyen d'exécuter ces jar dans l'une des fonctions de ma classe? Je veux dire commencer le cryptage traité par ce pot après un événement. Comment lancer des lignes de commande à partir de ma classe?

Par exemple:

if(IHaveData() && FileCreated()) 
*Encrypt the data* 

Merci à l'avance à tous ceux qui veulent aider, même si la question peut être stupide ou quelque chose

+0

lire ceci pour la chose la ligne de commande http://stackoverflow.com/questions/8496494/running- command-line-in-java – fGo

+0

cochez ces liens si cela vous aide: http://stackoverflow.com/questions/1794702/comment-run-a-jar-file-from-inside-another- programme-java http://stackoverflow.com/questions/4936266/execute-jar-file-from-a-java-programme – manish

Répondre

2

Nous ne courons pas des bocaux. Nous courons des applications. Les applications Java consistent en une collection de classes et de ressources qui peuvent être stockées dans le système de fichiers ou dans les fichiers jar.

Pour exécuter l'application Java, vous devez utiliser la ligne de commande comme

java -cp one.jar;two.jar;three.jar Main

  • x.jar - les fichiers jar
  • ; - séparateur pour les fenêtres. Utilisation: pour unix
  • Main est un nom de classe complet de votre point d'entrée.

Vous pouvez évidemment exécuter une ligne de commande du programme Java en utilisant Runtime.getRuntime().exec() ou en utilisant ProcessBuilder. "Tout" signifie que vous pouvez évidemment exécuter une application Java à partir d'une autre application Java.

Cependant, cette méthode présente de nombreux inconvénients évidents. Au lieu de cela, vous devez exécuter l'API exposée par la bibliothèque que vous utilisez. Si elle ne remet pas exposer l'API pratique, vous pouvez dans le pire des cas directement la principale méthode de votre programme:

Main.main(new String[] {param1, param2})

Questions connexes