Anwendung soll eigenen Dateinamen referenzieren

C0FFEE

Mitglied
Hallo Forum!

Tja, im Prinzip ist meine Frage schon im Threadtitel enthalten. Ich möchte eine .exe kompilieren, die ihren eigenen Dateinamen einlesen können soll. Die File-Klasse bringt mich hier irgendwie nicht weiter. Wäre froh, wenn jemand von euch einen Anhaltspunkt für mich hätte.
 
T

Tomate_Salat

Gast
nope. Das einzige was du tun könntest, wäre ein C++-Launcher schreiben (ist nicht mal wirklich schwer). Aber ansonsten...nein, Java wird über eine JRE ausgeführt, deswegen läuft dein Programm auch unter der "referenz" Java.
 

C0FFEE

Mitglied
Oh, das ging ja wirklich schnell, danke erstmal. Und, tja das ist schade..Da muss ich mir wohl was anderes ausdenken. Der Gedanke war, mit dem Dateinamen eine Art config-String zu übergeben, der auf einzelnen Zielrechnern variieren kann. Ich wollte mir damit eigentlich eine zweite Datei ersparen, weshalb die Idee mit dem Launcher nicht in Frage kommt. Schade dass das mit Java nicht möglich ist. Aber wo Du es erwähntest: Kann eine in c++ programmierte Anwendung ihren eigenen Dateinamen referenzieren?
 
G

Gast2

Gast
Ich verstehe noch nicht ganz was du möchtest.

Du hast also ein Programm und da soll entweder config A geladen werden wenn das binary A.exe heißt oder config B wenn das binary B.exe heißt?

Python kennt den Pfad zum aufgerufenen Skript - falls das eine Alternative ist. Allerdings kann man da auch andere Tricks einbauen.

Z.B. setzten von System Properties über eine Verknüpfung etc...

Was willst jetzt genau machen?
 

C0FFEE

Mitglied
Es handelt sich dabei um ein simples WOL-Skript, was einen bestimmten Server wecken soll. Je nachdem welcher Rechner das Programm startet, kann auch der zu weckende Server variieren. Beispielsweise bekommt ein Rechner eine exe mit dem Namen '00_00_00_00_00_AA_somewhere_dynips_net.exe' und ein anderer eine exe mit dem Namen '00_00_00_00_00_BB_anywhere_dyndns_org.exe'. Hierbei handelt es sich um die MAC-Adresse und den Hostnamen des zu weckenden Rechners, den ich so bequem übergeben und ggf. ebenso bequem editieren könnte.
 
G

Gast2

Gast
Erzeuge eine .bat die das Jar aufruft mit

java -jar -Dcom.my.program.hostmac.to.wake=00_00_00_00_00_AA_somewhere_dynips_net myprogramm.jar

Und liefer die bat zusammen mit dem Jar aus.

Aber ich verstehe nicht ganz wo der Vorteil ist - wenn du eh für jeden Rechner ein eigenes "Release" bauen musst, auch wenn es nur das binary umbenennen ist - dann kannst du doch auch gut einfach ein Configfile einpacken?

Idee:

Erstell ein ANT Script das dir aus einer build.properties mehrere Jars packt. Eins für jeden Rechner mit jeweils der nötigen Config Datei. Die lädst du dann als Resource über den classloader - fertig.

Oder noch einfacher du definierst eine Konstante und läßt ANT die beim build hart gegen die Mac ersetzen.
 
G

Gelöschtes Mitglied 9001

Gast
Also, ich habe meine Applikation mit launch4j in eine EXE-Datei gepackt. Dann liefert mir
Java:
getClassPath()
auch den kompletten Pfad inklusive des Dateinamens der EXE-Datei.

Rajmund
 

C0FFEE

Mitglied
Ich kann in meiner JRE System Library leider keine Methode getClassPath() finden. Kannst Du mir die dazugehörige Klasse nennen?

Ein Test mit System.getProperty("java.class.path"); wollte schonmal nicht funktionieren. Die exe verweist dann auf die dazugehörige jar-Library (irgendwie auch nicht verwunderlich). Ist die dann nicht mehr relativ zur exe wirfts mir ein Laufzeitfehler.
 
G

Gelöschtes Mitglied 9001

Gast
Ups, Entschuldigung, da hatte ich wohl was vergessen:
Java:
public static String getClassPath() {
		String [] ClassPath = System.getProperty("java.class.path").split(File.pathSeparator); 
		if (ClassPath == null) return null;

		String classpath = ClassPath[0];
		File P;
		if (classpath.toUpperCase().endsWith(".JAR")) {
			int pos = classpath.lastIndexOf(File.separator);
			
			classpath = pos == -1?"":classpath.substring(0, pos);
		}
		
		P = new File(classpath);
		
		return P.getAbsolutePath();
	}


EDIT:
Ein Test mit System.getProperty("java.class.path"); wollte schonmal nicht funktionieren. Die exe verweist dann auf die dazugehörige jar-Library (irgendwie auch nicht verwunderlich). Ist die dann nicht mehr relativ zur exe wirfts mir ein Laufzeitfehler.
Wie gesagt, ich habe die jar mit dem Programm launch4j in eine EXE gewrappt. Dann klappt's bei mir.
 
Zuletzt bearbeitet von einem Moderator:

C0FFEE

Mitglied
Ja, das tuts! SchnippSchnapp, Dateipfad ab:

[Java]
String str = getClassPath();
String filename = str.substring(str.lastIndexOf("\\")+1, str.indexOf(".")>-1?str.lastIndexOf("."):str.length());[/Java]

..liefert mir meinen heißbegehrten Dateinamen der Applikation. Ich bedanke mich recht herzlich. :)
 
G

Gelöschtes Mitglied 9001

Gast
Schau Dir noch die Methode getName() der Klasse File an. Dann mußt Du nicht mit Stringoperationen jonglieren und kannst Du auf die Angabe des Backslash verzichten, den es als Trenner in Pfaden ja nur unter Windows gibt. Ok, bei Dir geht zwar ohnehin um EXE-Dateien, aber getName() ist dennoch einfacher. (Btw. könnte ich meine eigene Methode dahingehend auch noch optimieren und getParent() verwenden.)
 

C0FFEE

Mitglied
Klasse, dass es bei Java für alle Eventualitäten schon eine Methode zu geben scheint. Ich hatte bisher nur Erfahrung mit irgendwelchen EcmaScript-Ausformungen (JavaScript, ExtendScript, ActionScript), da muss(te) ich mir immer für die grundlegendsten Sachen eigene Methoden bauen.
 

faetzminator

Gesperrter Benutzer
Ich verwende folgenden Einzeiler irgendwo:
Java:
String path = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
 

C0FFEE

Mitglied
Ok. Das bringt mich zu dem Zweizeiler:

Java:
String filename = new File(this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath()).getName();
filename = filename.indexOf(".")>-1?(filename.substring(0,filename.lastIndexOf("."))):(filename);

:D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Objekt soll Anwendung über Änderungen informieren Java Basics - Anfänger-Themen 8
A JBoss-Anwendung soll im Singleton-Mode laufen Java Basics - Anfänger-Themen 6
G Hilfer zur einer Anwendung soll HTML Datei öffnen Java Basics - Anfänger-Themen 4
I In unterschiedlichen Applikation Zugriff auf eine gemeinsame Anwendung? Java Basics - Anfänger-Themen 8
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
A JavaFX-Anwendung läuft nicht mit Selenium WebDriver Java Basics - Anfänger-Themen 0
K Mail senden, nachdem Anwendung beendet wurde (gleich wie) Java Basics - Anfänger-Themen 4
P Best Practice Druck aus Java Anwendung in MacOs Java Basics - Anfänger-Themen 0
T Start-Activity für Java Maven Web-Anwendung festlegen Java Basics - Anfänger-Themen 2
J Was mache ich falsch in meiner Java Anwendung? Java Basics - Anfänger-Themen 11
I Java Anwendung auf Android portieren Java Basics - Anfänger-Themen 1
I Java FX GUI Anwendung Java Basics - Anfänger-Themen 30
F Mehrere Server Sockets in einer Anwendung Java Basics - Anfänger-Themen 9
G MapStruct Anwendung vom selbst geschriebenen Formater Java Basics - Anfänger-Themen 4
J Aktuelle Zeit in einer JavaFX Anwendung aktualisieren lassen Java Basics - Anfänger-Themen 4
S If Anwendung Java Basics - Anfänger-Themen 1
2 Verständnisproblem bei Anwendung von Lower Bounded Wildcards Java Basics - Anfänger-Themen 5
J Datentypen Anwendung von String contains Java Basics - Anfänger-Themen 4
P Klassen Richtige Anwendung einer Enum-Klasse Java Basics - Anfänger-Themen 11
R If anwendung funktioniert nicht Java Basics - Anfänger-Themen 3
W Verschiedene Bibliotheken in einer Anwendung? Java Basics - Anfänger-Themen 2
GENiALi Java Console Anwendung starten in Prozess Java Basics - Anfänger-Themen 3
A Testprogramm in java oder javascript für Windows Anwendung? Java Basics - Anfänger-Themen 1
S JUnit - Swing- Anwendung wird nicht neu gestartet Java Basics - Anfänger-Themen 0
R Best Practice Problem Anwendung umzusetzen Java Basics - Anfänger-Themen 2
S Paint Anwendung: Freihandlinien zeichnen Java Basics - Anfänger-Themen 4
S Anwendung Startet nur in Vergangenheit Java Basics - Anfänger-Themen 11
S Erste Schritte drawOval Problem in Paint Anwendung Java Basics - Anfänger-Themen 1
C Java-Anwendung im Browser zoomen Java Basics - Anfänger-Themen 1
C Anwendung generischer Typparamter auf ArrayList Java Basics - Anfänger-Themen 2
I Externes konsolen Anwendung (.exe) starten Java Basics - Anfänger-Themen 2
E Classpath SecSigner in WebStart-Anwendung Java Basics - Anfänger-Themen 3
N Best Practice Stilistische Anwendung von if/else-Abfragen Java Basics - Anfänger-Themen 7
E mit java-anwendung internet verbindung unterbrechen Java Basics - Anfänger-Themen 5
L Verbindung von Anwendung mit GUI Java Basics - Anfänger-Themen 6
DStrohma Best Practice Hibernate für kleine Anwendung nutzen? Java Basics - Anfänger-Themen 4
W Rekursion Anwendung Java Basics - Anfänger-Themen 16
FreeFun Java Anwendung beenden Java Basics - Anfänger-Themen 7
S Reale Anwendung der OOP Java Basics - Anfänger-Themen 33
B Seltsamer Fehler in SWING anwendung Java Basics - Anfänger-Themen 2
M Anwendung Schreibrechte geben Java Basics - Anfänger-Themen 13
M Anwendung als Webstart ausführen Java Basics - Anfänger-Themen 4
G Erste Schritte von Eclipse zur Anwendung: Programme auf anderen Rechnern zum Laufen bringen Java Basics - Anfänger-Themen 4
H Erste Schritte 2 User Interfaces für eine Anwendung Java Basics - Anfänger-Themen 7
M Anwendung in verschiedenen JREs Java Basics - Anfänger-Themen 42
A Hilfe bei Anwendung erstellen Java Basics - Anfänger-Themen 2
J GUI für Java-Anwendung erzeugen Java Basics - Anfänger-Themen 7
U Rechte bei JAVA-Anwendung? Java Basics - Anfänger-Themen 8
JAVAnnik Anwendung nach Schließen vom letzen Frame Java Basics - Anfänger-Themen 9
C Mit Java Textfeld einer externen Anwendung auslesen Java Basics - Anfänger-Themen 9
L Benutzerdefinierte Anwendung starten Java Basics - Anfänger-Themen 5
S KeyListener-Anwendung Java Basics - Anfänger-Themen 7
Steve5000 Externe Batch-Datei starten und anwendung beenden?! Java Basics - Anfänger-Themen 4
StrikeTom Problem mit regex(-anwendung) Java Basics - Anfänger-Themen 10
D Frage zu Collection und deren Anwendung Java Basics - Anfänger-Themen 2
P Java Anwendung mit mehr RAM starten?? Java Basics - Anfänger-Themen 5
N Favicon in meiner Anwendung Java Basics - Anfänger-Themen 9
Error257 Doppelklick-Anwendung Java Basics - Anfänger-Themen 6
P Interfaces -> eins oder mehrere für eine Anwendung? Java Basics - Anfänger-Themen 9
Dit_ invokeLater | richtige Anwendung Java Basics - Anfänger-Themen 2
H Datei einlesen in einer MVC Anwendung Java Basics - Anfänger-Themen 3
B JavaWebStart - Anwendung läuft nur auf einem Rechner Java Basics - Anfänger-Themen 6
M MergeSort - Threads in Anwendung bremsen alles! Java Basics - Anfänger-Themen 4
Dit_ Collections.sort(..); | Anwendung Java Basics - Anfänger-Themen 4
D Das Ausführen einer Java Anwendung auf versch Systemen... Java Basics - Anfänger-Themen 5
F u.a. Ressourcen begrenzung für Java-Anwendung Java Basics - Anfänger-Themen 5
X Konfiguration einer Anwendung aus mehreren Dateien Java Basics - Anfänger-Themen 11
K JAVA-Anwendung startet nicht Java Basics - Anfänger-Themen 7
P Output einer anderen Anwendung verwenden Java Basics - Anfänger-Themen 7
M (Sub-)Anwendung schließen aus JMenu Java Basics - Anfänger-Themen 6
A Aufruf einer externen schon laufenden Anwendung Java Basics - Anfänger-Themen 3
harrli Markierten Text einer anderen Anwendung ermitteln Java Basics - Anfänger-Themen 10
Y Preferences / Properties Anwendung plattformunabhängig Java Basics - Anfänger-Themen 4
B Java-Anwendung im Windows Design Java Basics - Anfänger-Themen 8
G Polymorphismus und die richtige Anwendung Java Basics - Anfänger-Themen 6
J java anwendung starten - wie? Java Basics - Anfänger-Themen 7
M Handy Java Anwendung Java Basics - Anfänger-Themen 8
D Beim Schließen eines Dialogs die Ganze Anwendung schließen ? Java Basics - Anfänger-Themen 7
T Desktop Anwendung Aufbau Java Basics - Anfänger-Themen 5
G Bild von Anwendung Java Basics - Anfänger-Themen 3
E Problem mit der parallelen Anwendung Java Basics - Anfänger-Themen 11
J Anwendung von "this" Java Basics - Anfänger-Themen 4
N Fenster einer anderen Anwendung resizen? Java Basics - Anfänger-Themen 2
M Swing Anwendung - boolean schaltet automatisch auf true Java Basics - Anfänger-Themen 2
G Mehrsprachenfähigkeit in eine Anwendung integrieren Java Basics - Anfänger-Themen 2
Q Anwendung eines JScrollPane Java Basics - Anfänger-Themen 2
A java-anwendung ohne jre starten Java Basics - Anfänger-Themen 8
G Version von Anwendung mit Eclipse oder anders festlegen Java Basics - Anfänger-Themen 8
D html in einer java-anwendung Java Basics - Anfänger-Themen 10
G Anwendung von try-catch Java Basics - Anfänger-Themen 10
G Anwendung beendet nicht. Java Basics - Anfänger-Themen 5
T Anwendung von Interfaces Java Basics - Anfänger-Themen 2
R Java als Anwendung Java Basics - Anfänger-Themen 6
G Anwendung findet vorhandene Klasse nicht Java Basics - Anfänger-Themen 4
T Wie ausführbare Anwendung erstellen Java Basics - Anfänger-Themen 2
A Kommunikation Java-Anwendung <-> Java-Applet Java Basics - Anfänger-Themen 24
G Datum und Text in jede beliebige Anwendung einfügen Java Basics - Anfänger-Themen 3
ven000m Wieso antwortet mein Server nicht mehr (Socket Anwendung) Java Basics - Anfänger-Themen 2
D Aus Anwendung Zugriff auf ein Servlet Java Basics - Anfänger-Themen 5
S Hilfe bei der Anwendung von jarFile Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben