|
|
Eigene Java Klasse aufrufen |
|
paul |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.10.2007, 19:54
Titel: Eigene Java Klasse aufrufen
|
 |
Hallo
Objekte aus Klassen der Java API in Matlab zu laden ist recht einfach. Nun wollte ich aber eine selbst erstellte Java Klasse laden, habs aber nicht geschafft.
Kann mir vielleicht jemand sagen was ich falsch mache?
Hier meine eifache Java Klasse Test.class (ist aus Frame abgeleitet und soll lediglich einen String ins Fenster zeichnen):
..compiliert und gespeichert unter C:\javatest\Test.class
..danach in Matlab folgende Befehle ausgeführt:
..dann erscheint die Fehlermeldung:
??? Undefined function or variable 'Test'.
Matlab sollte die Klasse doch jetzt finden? Wo liegt der Hund begraben?
Vielen Dank für Antworten
Gruss Paul
|
|
|
|
|
outsider |

Forum-Meister
|
 |
Beiträge: 806
|
 |
|
 |
Anmeldedatum: 03.09.07
|
 |
|
 |
Wohnort: München
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 23.10.2007, 11:42
Titel:
|
 |
|
|
paul |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.10.2007, 17:52
Titel:
|
 |
Danke für die schnelle Antwort.
Leider sehe ich noch immer keinen Fehler in meinem Aufruf. Vielleicht sieht jemand einen Fehler?
Gruss Paul
|
|
|
Bijick |

Ehrenmitglied
|
 |
Beiträge: 914
|
 |
|
 |
Anmeldedatum: 18.06.07
|
 |
|
 |
Wohnort: Nürnberg
|
 |
|
 |
Version: R2006b, R2008b
|
 |
|
|
 |
|
Verfasst am: 24.10.2007, 14:07
Titel:
|
 |
Hallo Paul,
einen Fehler kann ich auch nicht sehen. Funktioniert denn das Hinzufügen an sich? (Abfragen mit >>p = javaclasspath)
Wenn nicht, würde ich es mal mit der Funktionssyntax von javaaddpath probieren, also
Aus unerfindlichen Gründen streiken manchmal die "Befehls-Syntaxen" (=command syntax).
Ansonsten kenne ich mich wohl zu wenig mit Java aus. Kann man die Klasse denn so als Funktion verwenden? Vielleicht muss man in dem Fall den Pfad auch zum normalen Suchpfad hinzufügen:
Aber dafür keine Garantie! Nur so meine Idee.
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
paul |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.10.2007, 18:40
Titel:
|
 |
Hallo Bijick, danke für die Antwort.
Ja das hinzufügen zum javaclasspath funktioniert einwandfrei.
Den Pfad zum normalen Matlab Pfad hinzuzufügen half leider auch nichts.
Ja, Java Objekte kann man in Matlab direkt aus Klassen erzeugen, indem man ihren Konstrukor aufruft. Mit Klassen der integrierten Java API funktioniert das tip top. Ein Frame erzeuge ich z.B so:
..erzeugt ein Frame-objekt im Matlab Workspace. Nach aufruf der Methode setVisible() des Objektes wird das Fenster dann schön brav dargestellt.
Habe die Java Klasse jetzt sogar mit älteren versionen compiliert. Auch dies brachte den gewüschten Erfolg nicht
Gruss Paul
|
|
|
Michaela |

Forum-Century
|
 |
Beiträge: 239
|
 |
|
 |
Anmeldedatum: 12.07.07
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: bis 2007b
|
 |
|
|
 |
|
Verfasst am: 25.10.2007, 06:02
Titel:
|
 |
Habe gerade gelesen, dass deine Klasse heissen
soll. Tipp doch mal
ein, um zu gewährleisten dass es nicht im Suchpfad bereits eine Funktion desselben namens gibt...
Damit bin ich zu Anfangs-Programmierzeiten mal kräftig reingefallen, als ich unter linux mein erstes C-Programm test.c nannte - test gibt es auch als reguläre unix funktion...
_________________
---------------------------------------------------------------
Leider habe ich daheim zwar Internet aber kein Matlab - daher sind alle Syntaxbeispiele circa Angaben.....
|
|
|
paul |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.10.2007, 18:00
Titel:
|
 |
Danke für den Tip. Habs getestet, das ist auch nicht das Problem. Im Gegenteil, es wird gar keine Funktion mit Namen Test gefunden.
Meine Fehlermeldung ist ja gerade: ??? Undefined function or variable 'Test'. Die Klasse wird einfach nicht gefunden, obwohl der Pfad zu ihr im javaclasspath eingetragen ist.
Habs den Aufruf noch folgendermassen versucht:
..und bekam wieder eine Meldung dass die Klasse nicht gefunden wird:
??? Error using ==> javaObject
No class Test can be located on Java class path.
Warum wohl?
Gruss Paul
|
|
|
Sven |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.11.2007, 20:49
Titel:
|
 |
Hast du den Tip von outsider genau beachtet ?
http://www.mathworks.com/support/solutions/data/1-179EJ.html
Was liefert denn in Matlab der Aufruf:
version -java
und dies im Vergleich zur Kommandozeile:
java -version
ggf. musst du z.B. per javac -target 1.4 Test.java für eine ältere als die installierte Javaversion kompilieren.
Hatte dieses Problem auch mal. Hat ewig gedauert bis mir auffiel, dass ich keine für Java 6 kompilierte Klasse laden kann.
|
|
|
paul |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.11.2007, 20:09
Titel:
|
 |
He danke Sven.
Du hast Recht gehabt. Es lag wirklich an unterschiedlichen Versionen. Hatte früher schon versucht die Java Klasse für ältere VM's zu kompilieren aber habe da wohl etwas falsch gemacht. Jetzt funktionierts!
Danke nochmals,
gruss Paul
|
|
|
Jonas123456 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.01.2011, 13:14
Titel:
|
 |
Hallo,
ich habe dasselbe Problem, jedoch sind die Java Versionen identisch (beide 1.6). Aber dennoch möchte Matlab meine Klassen aus meinem Package nicht laden. Habe es nach der Anleitung von Matlab gemacht, hat aber nichts gebracht.
(http://www.mathworks.com/help/techdoc/matlab_external/f4863.html)
Auch mit import geht es nicht. Habe schon überprüft ob der Pfad in javaclasspath kommt und da ist er auch. Er kann aber nicht die darin enthaltenen Klassen finden, geschweige denn ein Objekt draus erzeugen.
Hat jemand noch eine Idee?
Gruß,
Jonas
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.08.2011, 12:20
Titel:
|
 |
hei!
hab grad ein ähnliches problem. kann eine klasse eines drittanbieters nicht laden. vielleicht muss du die library in librarypath.txt noch eintragen(also verzeichnis). oder mit import nochmal die klasse nachladen...
aber mein problem ist auch das ich mich nicht wirklich mit java auskenn
good luck!!
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|