Zjisteni jmena JAR souboru uvnitr aplikace – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Zjisteni jmena JAR souboru uvnitr aplikace – Java – Fórum – Programujte.comZjisteni jmena JAR souboru uvnitr aplikace – Java – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
tux.martin0
Newbie
5. 11. 2012   #1
-
0
-

Zdravim,

potrebuju nastavit programu vice pameti, ale nechci mit samostatny bat soubor, ktery by volal:

@ECHO OFF
java -Xss16M -jar soubor.jar

Podarilo se mi to cele nacpat do jednoho JAR souboru a funguje to:  

package app;

import java.awt.EventQueue;
import java.io.IOException;

public class Spustit {

  public static void main(String[] args) {

    if ((args.length != 0) && args[0].equals("xss_set")) {

      EventQueue.invokeLater(new Runnable() {
        public void run() {
          try {
            Okno frame = new Okno();
            frame.setVisible(true);
          } catch (Exception e) {
            e.printStackTrace();
          }
        }
      });

    } else {
      System.out.println("Není nastavená paměť! Nastavuji paměť a spouštím program znovu.");
      try {
        // TODO predat jmeno JAR souboru
        Runtime.getRuntime().exec("java -Xss16M -jar ./soubor.jar xss_set");
      } catch (IOException e) {
        e.printStackTrace();
      }
    }

  }

}

Problem je, kdyz nejaky "aktivni" uzivatel prejmenuje JAR soubor - pak to nejde.

Je nejaka funkcni moznost, jak muze program za sveho behu zjistit jmeno sveho jar souboru?

Nebo existuje nejake lepsi reseni, jak predat v programu JVM argumenty? Znovu spusteni noveho JVM se mi moc nelibi, ale lepsi reseni neznam :-(

Dekuji za pomoc!

Nahlásit jako SPAM
IP: 93.89.146.–
JoDiK
~ Anonymní uživatel
987 příspěvků
5. 11. 2012   #2
-
0
-

#1 tux.martin
Nevím jak v javě, ale v těch jazycích co znám, je jméno spuštěného programu dostupné přes nultý parametr

Nahlásit jako SPAM
IP: 88.103.233.–
tux.martin0
Newbie
5. 11. 2012   #3
-
0
-

#2 JoDiK
To jsem zkousel, ale nefunguje to:

public class Pokus {
	public static void main(String[] args) {

		for (int i = 0; i < args.length; i++) {
			System.out.println(i + ". " + args[i]);
		}
		
		System.out.println(Pokus.class.getName());
	}
}

Potebuju dostat abc.jar, ale vypise to:

c:\TEMP>java -jar abc.jar ahoj svete 123
0. ahoj
1. svete
2. 123
Pokus

c:\TEMP

Nahlásit jako SPAM
IP: 195.113.118.–
JoDiK
~ Anonymní uživatel
987 příspěvků
6. 11. 2012   #4
-
0
-
Nahlásit jako SPAM
IP: 88.103.236.–
Řešení
tux.martin0
Newbie
6. 11. 2012   #5
-
0
-
Vyřešeno Nejlepší odpověď

#4 JoDiK

System.out.println(System.getProperty("sun.java.command"));

funguje:


C:\>java -jar arg.jar a b c
arg.jar a b c

C:\>
Nahlásit jako SPAM
IP: 93.89.146.–
Vojta
~ Anonymní uživatel
75 příspěvků
21. 11. 2012   #6
-
0
-

#1 tux.martin
Jedno z řešení by mohlo být... přes File metodou list() zjistit všechna jména souborů, bohužel to selže, pakliže tam bude více jar souborů... ale i s tím by se dalo asi nějak pohnout...

Nahlásit jako SPAM
IP: 89.24.23.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 46 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý