Ich habe eine schwierige Frage, für die ich zuerst einen Hintergrund skizzieren werde, um die Dinge verständlicher zu machen.Wie kann man nur eine .Jar-Instanz zulassen und Args von anderen versuchten Instanzen verwenden?
Hintergrund
Ich habe einen Audioplayer in Java gemacht, die mit Befehlszeile args gestartet werden können, und auch ohne. Die .jar-Datei der Anwendung (mit Netbeans erstellt) wird in eine EXE-Datei (mit Launch4j) gepackt, sodass Sie beispielsweise eine MP3-Datei mit der EXE-Datei öffnen können. Anschließend übernimmt die .jar-Datei den Dateipfad in der Zeichenfolge []. Argumente.
Das Problem mit diesem Ansatz (für jetzt) ist, dass, wenn Sie mehrere MP3-Dateien auf einmal auswählen und gleichzeitig öffnen, sie alle in separaten Fenstern des Audiowalkman geöffnet werden. Was ich jedoch will, ist, dass alle Dateien in einer einzigen Instanz der Anwendung geöffnet werden.
Was ich dann versucht habe, ist, Launch4j erlauben nur eine Instanz der. JAR /. EXE in der Hoffnung, dass alle ausgewählten Dateien in einer Anwendung geöffnet werden würde, hat dies leider nicht funktioniert.
Was ich sehe, als eine Lösung
Deshalb möchte ich in der Lage sein, mehrere MP3-Dateien in Windows zu wählen, und dass alle Dateipfade bekommen als Befehlszeilen arg zu einer einzigen Instanz des weitergegeben Anwendung. Oder ein anderer Ansatz, der das gleiche Ergebnis hat. Kann jemand das in der tatsächlichen Anwendung verwirklichen?
Vielen Dank im Voraus. Ich werde versuchen, weiterhin nach möglichen Lösungen/Ideen zu suchen.
- Edits -
Die wichtigste Methode ist bereit, mehrere Dateien zu empfangen. Ich habe einen Codeabschnitt implementiert, der alle Befehlszeilenargumente der Anwendung in einer TXT-Datei speichert, und wenn ich nur eine einzelne Instanz mit der Launch4j-EXE-Datei zulasse, scheint nur ein einzelnes Argument in der TXT zu sein Datei, wenn ich versuche, mehrere MP3-Dateien zu öffnen.
Wenn ich zulassen, dass die .exe mehrere Instanzen haben, dann habe ich einfach die .jar-Anwendung mehrmals gestartet (einmal für jede Datei, die ich öffnen möchte).
Ist Ihre 'main'-Methode bereit, mehrere Dateipfade als Argumente zu erhalten? – Berger
@Berger Ja, main ist bereit, mehrere Dateipfade als Argumente zu erhalten. Ich habe eine Testdatei erstellt, um zu sehen, was die Argumente sind, und jedes Mal wird nur ein Dateipfad als Argument angezeigt. – ImJustACowLol
Verwenden Sie einen Socket ... – MadProgrammer