If(JRE>=Java6) {nutze JAVA6 API} else {nicht}

Status
Nicht offen für weitere Antworten.

striker2150

Mitglied
Hallo Forum,

ich moechte die Java6 API nutzen um in meinem Programm einen Browser zu oeffnen. Allerdings muss das Programm auch unter Java5 laufen. Es ist aber kein Problem, wenn die Funktion nur in Java6 funktioniert.

Daher die Frage, kann ich irgendwie eine Abfrage bauen und nur in dem Fall, dass eine Java6 (oder groesser) JRE vorhanden ist, auch die Java6 API ansprechen?
 

byte

Top Contributor
Du kannst die Java-Version des Zielsystems abfragen:

Code:
System.getProperty("java.version");
 

thE_29

Top Contributor
Aber du musst die Klasse dann via Reflection ansprechen und das ganze mit -target 1.5 und -source 1.5 kompilieren!
 

striker2150

Mitglied
Was genau heisst die Klasse via Reflection ansprechen?

Das ich das ganze dann fuer 1.5 kompostieren muss ist mir klar. Sonst steigt die Java 5 JRE aus.

Ich muss dann warscheinlich auch den 1.6 Code in eine extra Klasse packen. Also nicht in die selbe Klasse, die die Versionsabfrage macht. Oder ist das egal?


Nochmal danke fuer die schnellen Antworten...

Sascha
 

striker2150

Mitglied
Hat etwas gedauert, ich hatte bis jetzt keine Zeit das ganze aus zu probieren. Aber nun scheint es zu funktionieren. Der Code schaut bei mir so aus (ja, ich weis! Das kann man kuerzer und schoener machen):

Code:
boolean flagA = false;
boolean flagB = false;
String url = new String((String) config.getProperty("helpurl"));

if(((String) System.getProperty("java.vendor")).equals("Sun Microsystems Inc."))
{
  String javaVer = (String) System.getProperty("java.version");
        			
  if(! javaVer.startsWith("1.5") && ! javaVer.startsWith("1.4"))
  {
    flagA = true;
  }
}
        		
if(flagA == true)
{
  if (Desktop.isDesktopSupported())
  {
    Desktop desktop = Desktop.getDesktop();
    if (desktop.isSupported(Desktop.Action.BROWSE)) 
    {
      try 
      {
        desktop.browse( new URI(url) );
        flagB = true;
      }
      catch(Exception e)
      {
        // do nothing
      }
    }
  }
}

if(flagB == false)
{
  String help_t = new String("For help browse to:\n" + url);
  JOptionPane.showMessageDialog(comp, help_t, "Need help?", JOptionPane.INFORMATION_MESSAGE);
}


Nicht vergessen im Buildfile dann als Target die 1.5 angeben!

Code:
<javac srcDir="src" target="1.5" destDir="classes">
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben