Ich möchte die Java-Konsole-Ausgabe (generiert von System.out.println
und seiner Art) in eine Datei pipe. Ich habe eine ausgezeichnete Lösung gefunden here, Java-Tracing zu aktivieren, aber das funktioniert nicht für mich (keine Protokolldatei wird an einem beliebigen Ort auf Mac OS X oder Windows angezeigt). Soweit ich das beurteilen kann, verwende ich eine einfache Java-App ohne Java-Webstart. Wie kann ich das mit Java-Code machen, der Java Web Start nicht benutzt? Im Idealfall möchte ich eine Lösung, die keine Änderung des Codes erfordert.Wie kann ich die Java Console-Ausgabe in eine Datei ohne Java Web Start leiten?
Antwort
Sie benötigen keinen Java-Webstart, um dies zu tun. Stellen Sie einfach System.out
auf .
System.setOut(new PrintStream(new FileOutputStream(fileName)));
wo fileName
ist der vollständige Pfad zur Datei, die Sie Rohr zu wollen.
public static void main(String[] args) throws Exception { //Read user input into the array
System.setOut(new PrintStream(new FileOutputStream("home.txt")));
System.out.println("hello");
}
Wird hello\n
in eine Datei home.txt
im aktuellen Arbeitsverzeichnis genannt schreiben. Wenn Sie den Code unter Windows 7 nicht ändern können, verwenden Sie command redirection.
java YourMainClass > home.txt
Wenn Sie ein Glas laufen müssen, können Sie die -jar
Option des java application launcher verwenden.
java -jar /your/path.jar > /output/file/path.txt
Ich bin mir nicht sicher, worauf sich "YourMainClass" bezieht. Ist es die kompilierte JAR-Datei oder etwas anderes? – Thunderforge
@Thunderforge Wenn Sie ein Jar haben, führen Sie den Befehl jar aus. Wenn Sie eine Klasse mit 'main()' haben, führen Sie sie direkt aus. –
Ich habe versucht, den Befehl 'jar' anstelle von' java' auszuführen, wie Sie vorgeschlagen haben, aber 'jar /Applications/Test.app/Contents/Resources/Java/jar_0.jar> ~/Desktop/Test.txt' resultierte in' Illegale Option:/'und dann eine ganze Reihe von Informationen über akzeptable Parameter, von denen keine sofort relevant erschien. – Thunderforge
Is there any way that I can do it without modifying code? I'd like to do it for an application that is already compiled.
Wenn Sie es ohne Änderung Code tun wollen, dann ist die beste Wahl dieses:
$ java com.example.MyMainClass > filename
Versuchte '$ java/Anwendungen/Test.app> ~/Desktop/Test.txt' auf Mac OS X im Terminal, aber bekam "Fehler: Konnte Hauptklasse .Applications.Test.app nicht finden oder laden" – Thunderforge
@Thunderforge - Das ist, weil Sie einen Klassennamen nicht zur Verfügung stellen müssen ein Pfadname Hinweis: Ein Klassenname enthält keine Schrägstriche. Wenn Sie dies verwirren, nehmen Sie sich bitte die Zeit, den manuellen Eintrag für den 'java'-Befehl zu lesen. –
Am besten kann ich sagen, was ich vor zweieinhalb Jahren dachte, ich war verwirrt, weil die 'some.pkg.App' der Name einer OS X-App war (mit der Erweiterung' .app', äquivalent zu einer Windows .exe). Da ich eine Java-App als Mac OS X-App ausgeführt habe, habe ich es versucht. Ich habe Ihr Beispiel verdeutlicht, um diese Verwirrung zu beseitigen. – Thunderforge
Wenn Sie es von der Kommandozeile starten, dann können Sie stdout und stderr verwenden umleiten wie folgt in die Datei:
java -jar application.jar >file.txt 2>&1
wo Sie application.jar ersetzen mit der JAR-Datei Ihrer Anwendung.
- 1. Start Datei Fehler in Java Web Start
- 2. Java Web Start kann nicht
- 3. Kann ich die Ladedialoge in Java Web Start unterdrücken?
- 4. Java Web Start Alternative
- 5. Wie übertrage ich die Java-Konsolenausgabe in eine Datei?
- 6. Java Web Start JAVA_HOME
- 7. Wie kann ich Anwendungen unter Java Web Start (JNLP) debuggen?
- 8. Wohin geht eine Java Web Start-Anwendung?
- 9. Kann Java Web Start automatisch Verknüpfungen installieren?
- 10. Was kann Java Web Start ausführen?
- 11. Kann ich Java Web Start im Programm aufrufen?
- 12. Wie Java Web Start-Anwendung zu automatisieren?
- 13. Kombination von Launch4J und Java Web Start?
- 14. Eingabe/Ausgabe mit Java Web Start
- 15. Java Web Start nicht starten Problem
- 16. log4j-Konfiguration mit Java Web Start
- 17. Web Start JNLP Web Start von javascript oder jquery
- 18. Wofür wird "Java Web Start" verwendet?
- 19. Wie kann ich eine JavaScript-Datei von Java in GWT
- 20. Python entspricht Java JNLP Web Start?
- 21. Begegnung XmlBeanDefinitionStoreException beim Start Java Web Application
- 22. Nichts passiert nach dem Start einer Java Web Start App
- 23. Java-App langsamer wegen Web-Start
- 24. "Java Web Start nicht gefunden" mit Java 1.6
- 25. Wie Java Web Start (mit jnlp) Anwendung bei Google einbetten?
- 26. Java Web-Kommunikation ohne Portweiterleitung
- 27. Wie kann ich eine Java-Datei in einem anderen aufrufen?
- 28. Java Web Start im Vergleich zu Embedded Java Applet
- 29. , wie eine Datei in Java
- 30. Wie kann ich die Methode im Java Web-Service überladen?
'System.setOut()'. –
Gibt es eine Möglichkeit, dass ich es tun kann, ohne den Code zu ändern? Ich würde es gerne für eine bereits kompilierte Anwendung tun, ohne sie neu kompilieren zu müssen. – Thunderforge