Informace o Javě - Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



Java

Informace o Javě

java

15. ledna 2002, 00.00 | Pro vytvoření programů, které mohou reálně běžet na více operačních systémech, často potřebujeme zjistit některé parametry Javy, systému či o uživateli samotném.

Zjišťování informací o Java 2 přímo za běhu může být v některých případech tou nejlepší cestou, jak něco udělat. Uživatel by nám samozřejmě mohl říci, na jakém operačním systému pracuje či jaké je jeho uživatelské jméno. Ale při otázce, kde má nainstalovanou Javu a jaká je její verze bychom mohli dostat zavádějí či vůbec žádnou odpověď.

Proto si zde ukážeme, jak velice jednoduše tyto informace zjišťovat.

Základní způsob, jak zjistit nějakou hodnotu je následující:

// soubor OneProperty.java
public class  OneProperty
{
     public static void main(String[] args)
     {
          String username = System.getProperty("user.name");
          System.out.println("Username is: " +username);
     }
}

Místo user.name můžeme použít následující vlastnosti. Ty, které zde uvádím patří k těm základním, v manuálu Javy jich je trochu více. Ale při úplném výpisu, kterým se také budeme zabývat, objevíte, že jich je mnohem více.

Vlastnost

Popis

java.version verze Javy
java.vendor název Javy
java.vendor.url URL Javy
os.name jméno operačního systému
os.arch architektura operačního systému
file.separator oddělovač adresářů ("/" či "\")
path.separator oddělovač disků (pod Windows ":")
line.separator oddělovač řádky
java.class.version verze Java class

Z důvodu ochrany applety nemohou číst některé proměnné. To které to jsou, lze odvodit i zpaměti. Obecně ty, které říkají něco o souborovém systému či uživateli. Např.:

Vlastnost

Popis

java.class.path nastavená classpath
java.home instalační adresář Javy
user.dir aktuální (pracovní) adresář
user.home domovský adresář uživatele
user.name uživatelské jméno uživatele

Nyní si vytvoříme velice jednoduchý program, který nám vypíše všechny vlastnosti i s jejich hodnotami.

// soubor ShowProperty.java
public class  ShowProperty
{
     public static void main(String[] args)
     {
          if (readProperties() == false) {
               System.out.println("error occurred");
          }
     }

     public static boolean readProperties()
     {
          java.util.Properties p = null;
          try {
               p = System.getProperties();
          }
          catch (Exception e) {
               e.printStackTrace();
               return false;
          }

          java.util.Enumeration en = p.propertyNames();

          while  (en.hasMoreElements()) {
               String s = (String) en.nextElement();
               String strValue= p.getProperty(s);
               System.out.println(s + " = \"" + strValue + "\"");
          }
          return true;
     }
}

Zde zmiňované programy si můžete stáhnout na konci článku. Podívejme se blíže na výběr nejdůležitějších hodnot, které mi program vrátil. Celkem jich bylo 45. Pro Microsoft® Windows® to vypadá takto:

sun.boot.library.path = "D:\PROGRA~1\JDK1.3\jre\bin"
user.name: Petr Švec
user.home: D:\Documents and Settings\Petr Švec
user.dir: D:\Petr\Builder.cz\articles\x
java.io.tmpdir = "D:\Temp\"
line.separator = "
"
os.name = "Windows 2000"
java.library.path = "D:\PROGRA~1\JDK1.3\BIN;.;D:\WINDOWS\System32;... (kráceno – %PATH% mám na několik řádek)
java.class.version = "47.0"
user.home = "D:\Documents and Settings\Petr Švec"
file.encoding = "Cp1250"
user.name = "Petr Švec"
java.class.path = "."
java.home = "D:\PROGRA~1\JDK1.3\jre"
user.language = "cs"
java.version = "1.3.0"
sun.boot.class.path = "D:\PROGRA~1\JDK1.3\jre\lib\rt.jar;D:\PROGRA~1\JDK1.3\jre\lib\i18n.jar;D:\PROGRA~1\JDK1.3\jre\lib\sunrsasign.jar;D:\PROGRA~1\JDK1.3\jre\classes"
java.vendor = "Sun Microsystems Inc."
file.separator = "\"
user.region = "CZ"

A tyto hodnoty by to byli pod mým Linuxem (opět jen výběr). Celkem mi vrátil 23 hodnot.

user.language = "en"
java.home = "/usr/lib/java/bin/.."
java.version = "1.1.8"
file.separator = "/"
line.separator = "
"
user.region = "US"
file.encoding = "8859_1"
java.vendor = "Sun Microsystems Inc., ported by the Blackdown Java-Linux Porting Team"
user.name = "root"
os.arch = "x86"
os.name = "Linux"
user.dir = "/tmp"
java.class.path = ".:/usr/lib/java/bin/../classes:/usr/lib/java/bin/... (kráceno – $PATH obsahuje vice řádek)
java.class.version = "45.3"
path.separator = ":"
user.home = "/root"

Je zde krásně vidět, že různé verze Javy a to ještě pod různým systémem nemají přesně ty samé hodnoty. Ale především některé věci jako např. java.io.temdir nejsou ve starší definovány.

Asi je zřejmé, že některé hodnoty mě budou zvláště zajímat. Např. pro instalaci java.io.tmpdir, user.home či user.name a samozřejmě user.language. Pro práci se soubory file.separator resp. path.separator. K zahození také není informace, jakým způsobem se zakončují řádky v textových souborech, line.separator.

Informací je zde mnoho, záleží jen na vás, jak je zužitkujete :-)

Ochrana appletu

Bezprostředně to nesouvisí s tímto tématem, ale způsob, který lze použít vcelku ano. Nechcete, aby někdo mohl používat applet z vašich stránek, tak můžete použít jednoduchou ochranu. Při spuštění appletu si zjistíte jeho URL a pokud se nebude shodovat s vaši, pak ho ukončíte. Má to takový nedostatek a to že existují decompilery. A po dekompilaci není problém tuto ochranu změnit či úplně vyřadit. To ovšem dokáže mnohem méně lidí, než obyčejně stáhnout applet.

// soubor MyApplet.java
import  java.applet.*;
import  java.net.URL;

public class  MyApplet extends Applet {
     public void init() {
          URL appletURL = getCodeBase();
          if (appletURL.toString() != "...") {
// this is not my web !!!
          }
     }
}

Tak to bylo pro dnešek vše. Zde si můžete stáhnout soubor javainfo.zip se zde zmíněnými kódy.

Tématické zařazení:

 » Rubriky  » Java  

 

 

 

Nejčtenější články
Nejlépe hodnocené články

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: