Ich habe ein Java Maven Projekt, in dem ein Bibliothek Jar hängt von der konfigurierten Umgebungsvariable, so dass es in Eclipse ausgeführt habe ich diese Variable in der Registerkarte Umwelt von Maven Run Build erstellt (siehe Bildschirmfoto). Jetzt muss ich diese Swing-App in eine ausführbare JAR-Datei packen und exportieren und den Benutzer zum Testen bereitstellen. Wie übergebe ich diese Umgebungsvariable im Jar, um zur Laufzeit verfügbar zu sein. Ich denke, da wäre eine Möglichkeit, es in der Pom-Datei oder in einer Eigenschaftendatei zu konfigurieren.Java Programmierung Äquivalent von Umgebungswert in Maven Lauf konfiguriert
Antwort
Sie können das tun, wie folgt: -
<property>
<jvm.options>-Xmx512M</jvm.options>
</property>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<compilerArgs>
<arg>${jvm.options}</arg>
</compilerArgs>
</plugin>
</plugins>
Sie Ihr Projekt zu einem JAR-Paket und ein Skript Ihr Programm starten bieten.
Haupteintrag in Skript ist:
java -Xmx512M -cp "your jars" "Main method's Class"
Soll das VM-Argument identisch mit der konfigurierten Umgebungsvariablen sein? Die Variable, die in Linux-Shell exportiert wird, ist dieselbe wie VM-Argumente? Ich bezweifle es ernst, denn laufen, wie Maven in Eclipse als verschiedene Register für Umgebungsvariablen und anderen Abschnitt für VM arguements unter „Argumente“ Tab baut – nanosoft
nicht sie nicht dasselbe sind, aber man kann immer noch meinen Vorschlag mit Ihrem Problem zu lösen, java ** - DGOOLE_API_KEY = XXXX ** -cp "Ihre Gläser" "Hauptmethode Klasse". – rex
Wie ich in meiner Frage erwähnt habe, ist es eine Swing-Anwendung und wird von Benutzern verwendet werden. Es ist nicht vorgesehen, dass es über die Befehlszeile ausgeführt wird, sondern durch Doppelklick. Der Benutzer wird kein Argument für die Ausführung übergeben ... Ich muss die Umgebungsvariable nur innerhalb des JARs bündeln. Ich glaube, es sollte Konfigurationslösung über Maven oder Eigenschaften kommen. – nanosoft
Sie können entweder einen -DDGOOLE_API_KEY verwenden = XXXX wie @rex oder tun vorgeschlagen:
System.setProperty("GOOLE_API_KEY","XXXX");
In Ihrem Code. Sie müssen sicherstellen, dass diese geladen wird, bevor die Bibliothek es liest. Am besten, als statischer Block in einer sehr vorzeitigen geladenen Klasse.
public class {
static {
System.setProperty("GOOLE_API_KEY","XXXX");
}
}
Wenn finden Sie die Befehlszeile Option -D verwenden Sie es dem Kunden geben, als Klartext, und dies wird es sehr leicht zu machen, sie zu benutzen ...
Bedeutung jeder Das wird laufen Ihre Software wird Ihren API-Schlüssel kennen. Wenn Sie es innerhalb des Glases fest codieren, wird es schwieriger (aber sehr möglich), es zu bekommen.
Wenn Sie es im Code behalten, wird es für gute Leute einfacher, gut zu bleiben.
- 1. Lauf JUnit-Tests von dem Main in Maven mit Gurke
- 2. Rubin Thread-Programmierung, Rubin Äquivalent von Java-Warte/benachrichtigen/notifyAll
- 3. jhipster Maven Lauf Fehler
- 4. Runnable von Java-Lauf
- 5. Get Umgebungswert in der Steuerung
- 6. Lauf Jersey Beispiele mit Maven
- 7. Aufruf Maven Ziele von Java
- 8. Äquivalent von memcmp() in Java?
- 9. pax-Lauf mit Maven Plugin in pom.xml
- 10. Wie wird die Kodierung in Maven konfiguriert?
- 11. Java-Äquivalent von OpenLayers
- 12. des Lauf von der Kommandozeile in Java
- 13. Maven Alternative (Äquivalent) von Gradle Application Plugin
- 14. Gradle Äquivalent von Maven-Versionen-Plugin
- 15. Äquivalent von C++ 's typedefs/alias Verwendung in Template-Programmierung
- 16. Composer Äquivalent in JAVA?
- 17. Multi-Modul Maven-Projekt und Steg: Lauf
- 18. Äquivalent von IllegalArgumentException von Java in C++
- 19. Maven - Lauf Integration und Unit Tests
- 20. Programmierung in Java Bytecode
- 21. Programmierung Beschleunigung in Java
- 22. Constraints Programmierung in Java
- 23. Aspektorientierte Programmierung in Java
- 24. STXXL-Äquivalent in Java
- 25. Grids in Java-Äquivalent
- 26. Java-Äquivalent von Pythons getattr?
- 27. Python-Äquivalent von Java Redirect.INHERIT
- 28. Java-Äquivalent von .NET-Konstrukten
- 29. Java-Äquivalent von Register int?
- 30. Java-Äquivalent von C# 'Enumerable.Any'
Ich sehe keinen Screenshot – gba
Mögliche Duplikate von [Maven Jetty-Plugin - wie zu steuern, VM-Argumente?] (Http://StackOverflow.com/Questions/2007192/maven-Jjetty-Plugin-How-to-control- vm-arguments) –
@gba - Screenshot hinzugefügt ... – nanosoft