UnsatisfiedLinkError in Eclipse

Hallo!

Ich habe mit Eclipse Helios Release (Build ID: 20100517-1415) ein neues Projekt angelegt & bekomme es nicht zum Laufen. Interessanter Weise haben sich früher andere Projekte auf dieser IDE übersetzten lassen & sind gelaufen. Die Fehlermeldungen in der Konsole bei dem neuen & allen anderen Projekten lautet: UnsatisfiedLinkError (s. u.). Ich wüsste nicht, was ich an der IDE verstellt habe, damit jetzt gar nichts mehr geht. Dass ich mich mit Eclipse gut auskenne, kann ich auch nicht sagen: ich bin nur ein Benutzer.

Ich habe mit http://mindprod.com/applet/wassup.html geschaut: die Java-Version ist bei mir 1.6.0_22 & somit nicht das Problem. Wie auf dieser Seite empfohlen habe ich im Applett (Microsoft Internet Explorer 9 beta) die Werte herausgelesen (s.u.).
Möglicher Weise ist ein Pfadproblem da, denn native code verwende ich selber nicht. Darum habe ich versucht, einen java.library.path hinzuzufügen, was aber nichts geholfen hat.

Wenn ich Eclipse aufrufe wähle ich den Arbeitspfad als C:\Users\workspace\Java. Der Kode des neuen Projekt befindet sich im Unterverzeichnis src\Chapter01.

Gehe ich nun im Package Explorer (links) auf das Projekt mit der rechten Maustaste & wähle „Close Unrelated Projects“, dann schließen sich alle; allerdings bekomme ich dann statt der Fehlermeldung oben eine andere Meldung in einem Fenster:

Problem Occured_____________________________[_][O][x]

(x) ‚Launching Main‘ has encountered a problem.
Launch configuration Main references closed project Mobile.
[OK] [Details>>]
____________________________________________________
Launch configuration Main references closed project Mobile
____________________________________________________

Öffne ich das vermeintlich benötigte Projekt ‚Mobile‘, so bekomme ich wieder die normale Fehlermeldung UnsatisfiedLinkError in der Konsole.
Zur Information: Mein Projekt besteht derzeit aus einer einzigen Klasse:
/**
*
*/
//package Chapter01;

/**
*
*/
public class Apple {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

}
}

Danke für alle Hinweise!

Sae1962

_Fehlermeldung in der Konsole__________________________
Exception in thread „main“ java.lang.UnsatisfiedLinkError: com.sun.midp.main.Configuration.getProperty0(Ljava/lang/String:wink:Ljava/lang/String;
at com.sun.midp.main.Configuration.getProperty0(Native Method)
at com.sun.midp.main.Configuration.getProperty(Configuration.java:32)
at com.sun.midp.lcdui.Resource.(Resource.java:30)
at com.sun.midp.main.Main.initSystemLabels(Main.java:686)
at com.sun.midp.main.Main.main(Main.java:103)

_CMP Wassup-Ausgabe____________________________________
acl.write.default =

deployment.browser.path = C:\Program Files\Internet Explorer\iexplore.exe

deployment.cache.max.size = -1

deployment.console.startup.mode = HIDE

deployment.javapi.trace.filename =

deployment.javaws.concurrentDownloads = 4

deployment.javaws.home.jnlp.url = http://java.sun.com/products/javawebstart

deployment.max.output.file.size = 10

deployment.repository.askdownloaddialog.show = true

deployment.security.askgrantdialog.notinca = true

deployment.security.blacklist.check = true

deployment.security.sandbox.awtwarningwindow = true

deployment.security.sandbox.jnlp.enhanced = true

deployment.system.security.blacklist = C:\Program Files\Java\jre6\lib\security\blacklist

deployment.system.security.trusted.jssecerts = C:\Program Files\Java\jre6\lib\security\trusted.jssecerts

deployment.user.logdir = C:\Users\AppData\LocalLow\Sun\Java\Deployment\log

deployment.user.security.trusted.cacerts = C:\Users\AppData\LocalLow\Sun\Java\Deployment\security\trusted.cacerts

deployment.user.security.trusted.jssecacerts = C:\Users\AppData\LocalLow\Sun\Java\Deployment\security\trusted.jssecacerts

deployment.user.tmp = C:\Users\AppData\LocalLow\Sun\Java\Deployment\tmp

file.encoding.pkg = sun.io

java.endorsed.dirs = C:\Program Files\Java\jre6\lib\endorsed

java.home = C:\Program Files\Java\jre6

java.protocol.handler.pkgs = sun.plugin.net.protocol|com.sun.deploy.net.protocol

java.runtime.name = Java™ SE Runtime Environment

java.vendor.applet = true

java.vendor.url = http://java.sun.com/

java.vendor.url.bug = http://java.sun.com/cgi-bin/bugreport.cgi

java.version = 1.6.0_22

java.version.applet = true

package.restrict.access.org.mozilla.jss = true

sun.io.unicode.encoding = UnicodeLittle

sun.jnu.encoding = Cp1252

sun.net.client.defaultConnectTimeout = 120000

sun.os.patch.level = Service Pack 2

user.name =

Hey,
was für Eclipse Plugins benutzt du denn? Denn es sieht so aus, als wenn deine JVM irgendwelchen native Code für die MIDP versucht zu laden und daran scheitert. Das ist J2ME Kram und da kenne ich mich nicht so gut aus.

Hey,
was für Eclipse Plugins benutzt du denn?

Gute Frage! Offensichtlich ist von dem J2ME (JavaME) eine Einstellung irgendwo „hängengeblieben“. Wo kann man denn nachschauen, welche Plugins für dieses/alle Projekte verwendet werden? Die J2ME plugins sollten NUR im ‚Mobile‘-Projekt zur Anwendung kommen. Offensichtlich kann man aber plugins für ALLE Projekte einstellen. Sonst verstehe ich nicht, wieso das neue Projekt nach J2ME fragt.

Danke für die Unterstützung!

Hi,

leider bin ich über die Feiertage nicht an meinem Rechner, sodass ich keine genauere Fehleranalyse betreiben kann.

Aber, da du für jeden Hinweis dankbar bist, versuche ich das Problem mal zu erahnen:

Exception in thread „main“ java.lang.UnsatisfiedLinkError: com.sun.midp.main.Configuration.getProperty0(Ljava/lang/String:wink:Ljava/lang/String;

Es handelt sich also um ein Midlet und es geht um Java ME? Jedenfalls hast du das Projekt so angelegt.

=> Midlets haben keinen „main“-Einstiegspunkt wie ein normales Javaprogramm, sondern werden über startApp() erzeugt.

Wenn du also kein Midlet programmieren willst, dann erzeuge ein neues Javaprojekt. Das sollte dann ohne diese Fehlermeldung funktionieren.

Falls du EclipseME nutzen solltest und ein normales Java-Projekt schreiben möchtest, dann empfehle ich dir „Eclipse IDE for Java Developers“.

Viele Grüße und ein frohes Fest,

Sebastian_

Hi,

[…]

Es handelt sich also um ein Midlet und es geht um Java ME?
Jedenfalls hast du das Projekt so angelegt.

=> Midlets haben keinen „main“-Einstiegspunkt wie ein normales
Javaprogramm, sondern werden über startApp() erzeugt.

Hmmm, stimmt! Das letzte Projekt davor war ein MIDlet-Projekt (‚Mobile‘). Daher der Name Bratkartoffel!

Ich habe also das SCJP-Verzeichnis (so lautet der Projektname des neuen Projekts) total entfernt & bei Eclipse über „File“ / „New“ / „Java project“ ein ganz neues Projekt eingegeben:

New Java Project
Create a Java Project.
Create a Java project in the workspace or in an external location.

Project name: SCJP

[]Use default location
Location: C:\Users\Saban\workspace\Java\SCJP

JRE
(o)Use an execution environment JRE: „JavaSE-1.6“
()Use a project specific JRE: jre6

usw…

Dann bin ich auf [Finish] gegangen.

Jetzt habe ich den Knopf „Java New Package“ betätigt & das neue Paket „Chapter01“ genannt.

Dann habe ich die Klasse Apple hinzugefügt:
/**
*
*/
package Chapter01;

/**
*
*/
public class Apple {

}

Und dann einfach versucht, zu übersetzten.

Meldung in der Konsole:
Exception in thread „main“ java.lang.UnsatisfiedLinkError: com.sun.midp.main.Configuration.getProperty0(Ljava/lang/String:wink:Ljava/lang/String;
at com.sun.midp.main.Configuration.getProperty0(Native Method)
at com.sun.midp.main.Configuration.getProperty(Configuration.java:32)
at com.sun.midp.lcdui.Resource.(Resource.java:30)
at com.sun.midp.main.Main.initSystemLabels(Main.java:686)
at com.sun.midp.main.Main.main(Main.java:103)

Frage: Wie kommt Eclipse dazu, ein MIDlet für ein neues Projekt zu verwenden, wenn ich das gar nicht so eingestellt habe??

Danke für die Hilfe!

Hi,

Ich habe eclipse mir neu vom Internet heruntergeholt, alle .eclipse & workspace Verzeichnisse entfernt, dann das Projekt neu angelegt. Jetzt geht es endlich wieder.

Schöne Feiertage & ein gutes Neues Jahr 2011!

Super :wink:

Dann freue ich mich für dich und wünsche dir auch ein frohes Fest.

Viele Grüße

Sebastian_

Ich bitte um Entschuldigung - die Anfrage ist mir durchgelaufen. Ich hätte aber auch nciht helfen können.

Viele Grüße

Siegfried Möller