2016-08-09 225 views
1

Ich habe eine Java-Anwendung geschrieben, die meine Telefonrechnungen analysiert und den Durchschnitt berechnet. Im Moment führe ich es wie:Wie installiere ich Java-Anwendung auf meinem Linux-System

$ java -jar analyze.jar bill_1.pdf bill_2.pdf 

Aber ich möchte die Anwendung auf meinem System installieren. Also kann ich einfach einen Terminaltyp im Namen der Anwendung und der Argumente auslösen und Enter drücken. Wie jedes andere "normale" Programm.

$ analyze bill_1.pdf bill_2.pdf bill_3.pdf 

Ich weiß, dass ich ein Shell-Skript schreiben und installieren Sie es auf „/ usr/bin /“ aber ich kann nicht glauben, dass es keine „native“ Weg ist.

Also bitte helfen, Entschuldigung für Dump Frage.

Dankten im Voraus

+1

Abgesehen von Ihren eigenen C-basierten Wrapper erstellen oder wie Sie erwähnen, ein Shell-Skript und Hinzufügen zu dem '$ PATH' (nicht unbedingt in'/usr/bin' sein müssen), Sie kann spezialisierte Software kaufen, die es für Sie erledigt. Eine davon ist [Exe4J] (https://www.ej-technologies.com/download/exe4j/files). – Mena

Antwort

1

Ein hübscher kleiner Trick ist, dass Sie ein grundlegendes Shell-Skript an den Start der JAR-Datei anhängen können, die es ordnungsgemäß ausführen wird. Siehe here für das gesamte Beispiel, aber die Grundlagen sind:

stub.sh

#!/bin/sh 
MYSELF=`which "$0" 2>/dev/null` 
[ $? -gt 0 -a -f "$0" ] && MYSELF="./$0" 
java=java 
if test -n "$JAVA_HOME"; then 
    java="$JAVA_HOME/bin/java" 
fi 
exec "$java" $java_args -jar $MYSELF "[email protected]" 
exit 1 

Dann tun ...

cat stub.sh helloworld.jar > hello.run && chmod +x helloworld.run 

Und Sie sollten alle gesetzt! Jetzt können Sie einfach das Script-Glas direkt aufrufen.

./helloworld.run 
+0

Das ist cool! Mag ich. – GhostCat

+0

@GhostCat Ja, es ist ein nettes kleines Hack. Leider gibt es kein Windows äquivalentes AFAIK. – apemanzilla

1

Was Sie bisher getan haben, ist im Grunde „die native“ Art und Weise.

Sie müssen Folgendes beachten: Java-Anwendungen werden zu Byte-Code kompiliert. Es gibt einfach keine binäre für Ihre Anwendung, die Sie aufrufen könnten. Sie benötigen diese Umleitung, um eine JVM-Installation mit einem Zeiger auf die Hauptklasse aufzurufen, die Sie ausführen möchten. In anderen Worten; Das ist, was die überwiegende Mehrheit der Java-Anwendungen tun.

Theoretisch gibt es Produkte, die Sie verwenden könnten, um eine "echte" Binärdatei aus Ihrer Anwendung zu erstellen. aber das ist kein einfacher Weg (siehe here für die ersten Starter); und wenn Sie Ihre Aussage, dass Sie nur auf der Suche nach mehr "Bequemlichkeit" ist es definitiv unangebracht hier.