Applikation läuft nicht unter Windows7 "platform not supported"

VfL_Freak

Top Contributor
Guten morgen allerseits,

kurz die Vorgeschichte:
bislang nutze wir hier zur Entwicklung XP Prof. sowie den (etwas älteren) JBuilder2007! Nachdem nun in 2011 auf Win7 umgestellt werden soll, habe ich nun endlich einen Rechner mit Win7 bekommen, mit dem ich eine meiner Applikationen debuggen soll, da sie bei ersten Tests SOFORT abschmirrte ...
Nachdem ich feststellen musste, dass sich der genannte JBuilder dort nicht installieren läßt (die Installationsroutine unterstützt Win7 nicht), habe ich das aktuelle Eclipse-SDK V3.6.1 installiert und meine Applikation eingerichtet.
Nach längerem Gefummel mit Pfaden etc. bin ich nun endlich soweit, dass ich fehlerfrei versuchen kann, zu starten .....

Nun mein Problem:
die Applikation schmirrt in der Tat nach ca. 1 sec. komplett ab.
In der Konsole sehe dann folgende Meldungen:
Code:
Serialio Library: version 9.5: build 9160 // dieses Laden sieht noch normal aus

Platform not supported, check VM properties os.name / os.arch
os.name="Windows 7" os.arch="x86"

hmmm, das klingt für mich ja so, als ob mein aktuelles Java-JDK V1.6.0_21 ein Problem mit Win7 hätte, oder ???:L
Oder liegt es an einer der verwendeten Bibliotheken (speziell die zuvor erwähnte SerialIO) ???:L

Ich hoffe inständig, dass irgendwer hier schon Erfahrungen gemacht hat und mir vlt. Tipps geben kann, was unter Win7 alles zu beachten ist 😉

Danke im voraus !
Gruß
Klaus
 
Moin,

SWT - gute Frage (ich arbeite noch nicht so lange mit Java und habe das Projekt nur übernehmen müssen) ... woran würde ich das erkennen?
Ich denke aber, das es eher eine Mischung aus AWT und Swing bzw. swingx ist ....

Folgende LIBs stehen im ClassPath:
Class-Path: log4j-1.2.8.jar
jco.jar
win32com.jar
jspComm.jar
Serialio.jar
edtftpj.jar
foxtrot-core-3.0.jar
swingx-1.6.jar

Dazu kommt dann ggf. in der build.xml die "proguard4.4"

Als native DLL wird irgendwo eine "mawin.dll" geladen, die wohl die MAC-Adresse, die Windows-Product-ID die Serialnummer der HD ermittelt (wird benötigt, um den jeweiligen Client in einem Verwaltungsprogramm zu erkennen und zuzuordnen)
Könnte die Probleme bereiten ??

Gruß
Klaus
 
Über Logging / Debugging solltest du herausbekommen, woher diese Meldung kommt (z.B. die letzte Stelle in deinem Code bevor ein Fremdprodukt aufgerufen wird). Ich vermute, dass ein der Java-Stub zu einer nativen Bibliothek ist, der sicherheitshalber mal Betriebsysteme aussperrt, die er nicht kennt und als potentiell inkompatibel bewertet.
Vielleicht gibt es dann beim Hersteller ein Update dafür.

Sonst: Pech gehabt.

[EDIT]
Gefühlstechnisch würde ich sagen serialio library ist ein heißer Kandidat...*G*
 
Zuletzt bearbeitet:
Über Logging / Debugging solltest du herausbekommen, woher diese Meldung kommt (z.B. die letzte Stelle in deinem Code bevor ein Fremdprodukt aufgerufen wird). Ich vermute, dass ein der Java-Stub zu einer nativen Bibliothek ist, der sicherheitshalber mal Betriebsysteme aussperrt, die er nicht kennt und als potentiell inkompatibel bewertet.
Vielleicht gibt es dann beim Hersteller ein Update dafür.
Habe eben mal die Stellen, die diese mawin.ddl betreffen auskommentiert, es ändert aber nix ...

Sonst: Pech gehabt.
;(

Habe das Ganze gerade noch mal unter XP versucht, dort sie die Ausgabe so aus :
Java:
Serialio Library: version 9.5: build 9160
Copyright (c) 1996-2004 Serialio.com, All Rights Reserved.
os.name="Windows XP"  os.arch="x86"
SerialPort class loaded: jspWin
Serialio.com jspWin Version 5.0
Copyright (C) Serialio.com 1996-2003. All rights reserved.
somit fürchte ich fast, dass das System mit der SerialPort-Klasse nicht klar kommt ...

gruß
Klaus
 
tja, wie ich es befürchtet habe .... das Instanziieren von SerialPortLocal (aus SerialIO) macht Probleme ...

Java:
public SerialPortLocal serPort = null;

// Default 19200,8,2,N,kein Handshaking
private int m_nBitRate   = SerialConfig.BR_19200;
private int m_nStartBits = SerialConfig.LN_8BITS;
private int m_nStopBits  = SerialConfig.ST_2BITS;
private int m_nParity    = SerialConfig.PY_NONE;
private int m_nHandshake = SerialConfig.HS_NONE;

// ...

public WSerComm_IP4( String strCom, int nBaud, mainFrm parent )
{
    devName    = strCom;
    m_parent   = parent;
    m_nBitRate = nBaud;

    try 
    {
      serCfg = new SerialConfig(devName);
      serCfg.setBitRate(m_nBitRate);
      serCfg.setDataBits(m_nStartBits);
      serCfg.setStopBits(m_nStopBits);
      serCfg.setParity(m_nParity);
      serCfg.setHandshake(m_nHandshake);
      serPort = new SerialPortLocal(serCfg); // <== hier tritt der Fehler auf und die Appl. schmirrt ab
                                                          // der StackTrace kommt gar nicht mehr !!
    }
    catch (Exception ex) 
    {
    	ex.printStackTrace();
    }

	if( serPort != null )
	{
	    start( );
	}
} // Konstruktor

Kennt jemand eine eine Win7-kompatible Version oder ggf. eine Alternative ???:L
Mit Google bin ich bislang nicht wirklich fündig geworden 😱

Danke und Gruß
Klaus
 
Laut update notes gibt es eine Windows 7 kompatible Version.
ABER:
Der Fehler kommt nicht aus 1.6.0_21! Ab ca. 1.6.0_17 (will mich nicht genau festlegen) erkennt die VM Windows 6.1 als Windows 7. In vorherigen Versionen der JVM wird alles mit 6.x (Vista und Windows 7) als Vista bezeichnet. Evtl. ist das auch eine Möglichkeit *hust* das Problem temporär zu lösen. Musst du nur abschätzen, ob du die Bugs bzgl. Windows 7 in den älteren 1.6er Versionen akzeptieren kannst (z.B. keine Icons im FileChooser)

EDIT: Nach erfolgreichem Test der vorhandenen Version unter Windows 7, muss genau genommen ja nur ein String mehr in das Versions-Stringarray geschmissen werden und schon habe ich eine "Windows 7 fähige Version" 🙂 (und ich kenne Projekte, wo es so war / ist)
 
Zuletzt bearbeitet:
Moin,

erstmal Danke für die vielen Antworten 🙂

Laut update notes gibt es eine Windows 7 kompatible Version.
ABER:
Der Fehler kommt nicht aus 1.6.0_21! Ab ca. 1.6.0_17 (will mich nicht genau festlegen) erkennt die VM Windows 6.1 als Windows 7. In vorherigen Versionen der JVM wird alles mit 6.x (Vista und Windows 7) als Vista bezeichnet. Evtl. ist das auch eine Möglichkeit *hust* das Problem temporär zu lösen. Musst du nur abschätzen, ob du die Bugs bzgl. Windows 7 in den älteren 1.6er Versionen akzeptieren kannst (z.B. keine Icons im FileChooser)
EDIT: Nach erfolgreichem Test der vorhandenen Version unter Windows 7, muss genau genommen ja nur ein String mehr in das Versions-Stringarray geschmissen werden und schon habe ich eine "Windows 7 fähige Version" 🙂 (und ich kenne Projekte, wo es so war / ist)
Das Problem kommt auch nicht aus der VM, sondern eindeutig vom "new SerialPortLocal"!
Hier wird wohl OS-Name und -Architektur gecheckt ... und "Windows7" mag die LIB nicht.

Schau vielleicht mal ob du da irgendwo eine neuere Version dieser SerialIO-Lib herkriegst, denn hier:
Serialio - Products - Serialport Supported Platforms
steht, dass Windows 7 unterstützt wird.
tja, auf der Seite war natürlich auch schon, komme mit ihr aber nicht wirklich klar.
Lt. meine Konsole ist die benutzte Version (vom Dez. 2003) Serialio Library: version 9.5: build 9160
Die Versionen, die man dort runterladen könnte, haben allesamt deutlich niedrigere Versionsnummern und installieren wohl auch nur eine exe-Datei, die zum Betrieb von USB-Connects an den Ports als Treiber benötigt wird. Einen Download der serialio.jar (und ggf. auch jspComm.jar) habe ich dort nicht gefunden ... :autsch:

Ich wollte jetzt gerade mal versuchen, es durch
Java:
System.setProperty( "os.name", "Windows XP"
quick and dirty zu lösen, habe aber jetzt leider auch noch ein dickes Problem mit Eclipse, wo sich nach einem Neustart mein Projekt nicht mehr vorhanden ist und scheinbar auch nicht laden lässt .....

Gruß
Klaus
 
Moin,

Schau vielleicht mal ob du da irgendwo eine neuere Version dieser SerialIO-Lib herkriegst, denn hier:
Serialio - Products - Serialport Supported Platforms
steht, dass Windows 7 unterstützt wird

na ja, so ganz schlau werde ich aus dieser Seite zwar nicht, aber ich habe denen mal eine Anfrage per Kontaktformular gesendet, um rauszubekommen, was man ggf. käuflich erwerben sollte. Mal schauen, ob sie sich melden und was dabei rauskommt - werde es hier ggf. für die Nachwelt kommunizieren 😀:

Danke und Gruß
Klaus

EDIT:
btw: die Quick'n'Dirty-Variante hat so nicht funktioniert, da dann einige abhängige LIBs nicht gefunden werden ....
 
Zuletzt bearbeitet:

Zurück
Oben