Java .class bei Eclipse für Projekt einbinden

Capt.Mollow

Cadet 2nd Year
Dabei seit
Juli 2004
Beiträge
18
Frohe Weihnachten erstmal!

In meinem Projekt benötige ich die Standardnormalverteilung.
Ich habe schon extrem viele Import- und Buildpath-Einstellungen ausprobiert, bekomme es aber nicht hin, dass in meiner Klasse DiskV (package: aufgabe_2) die Methoden der Klasse SNV zur Verfügung stehen. Es kommt immer der Fehler: "SNV cannot be resolved to a type"
Kann mir bitte einer helfen, in welchen Ordner ich die Klasse kopieren muss und wie sie dann eingebunden wird???
 
Zuletzt bearbeitet:

Firestorm-

Lt. Commander
Dabei seit
Okt. 2006
Beiträge
2.015
Nur nochmal zum Verständnis: Du arbeitest an einem Projekt, brauchst eine Klasse die Methoden beinhaltet die du verwenden musst/willst, in deinem Java.Project?

Hmm... Gibt prinzipiell mehrere Möglichkeiten.. Die Standard-Import-Funktion (Rechtsklick auf den Projektnamen -> Import -> General -> FileSystem -> .... ) oder du fügst die .class manuell in deine src-directory deines Projekts ein. Die findest du auf dem Workspace der von Eclipse angelegt wurde. Das sind die beiden gängigsten Varianten...

Nun zu deiner Fehlermeldung... : Erscheint diese beim Einbinden der .class Datei oder bei einem Methodenaufruf?
 

Capt.Mollow

Cadet 2nd Year
Ersteller dieses Themas
Dabei seit
Juli 2004
Beiträge
18
also die Hierarchie sieht so aus:
In meinem Eclipse-Workspace habe ich ein Java Project erstellt. In diesem sind mehrere packages, u.a. das package: aufgabe_2. In aufgabe_2 befindet sich u.a. die Klasse DiskV. In dieser Klasse benötige ich die Werte der Standardnormalverteilung, die z.B. als SNV.class auf obiger Website zur Verfügung stehen.

zu Firestorm-'s Lösungsvorschlag:
Die beiden .class-Dateien der Klasse SNV habe ich jetzt per Import in Eclipse bzw. manuell, in den Project-Ordner, den src-Ordner und den aufgabe_2-Ordner kopiert.
Wenn ich jetzt in meiner Klasse DiskV die Methoden der Klasse SNV nutzen möchte (z.B. SNV.phi(0.835); ) oder eine Instanz erzeugen möchte (SNV nVert = new SNV(); ), meldet Eclipse immer den Fehler: "SNV cannot be resolved to a type". Die gleiche Fehlermeldung spuckt auch der Compiler aus, wenn ich trotz der Fehler kompilieren lasse.
 

Firestorm-

Lt. Commander
Dabei seit
Okt. 2006
Beiträge
2.015
schonmal mit nem 'import classname.class' in der Klasse mit einer main-Methode versucht? Hmm... Habs grad selber nochmal ausprobiert.. Bei mir funktionierts ohne Probleme... Das Importieren, ebenso wie die Verwendung der Methoden...

Das einzige was mir noch einfällt wäre halt dann die class manuell zu erstellen und den Code zu kopieren.. Musst halt dementsprechend die Klassenbezeichner anpassen... Mich wunderts nur grad dass es bei dir solche Probleme macht... Wie gesagt, bei mir gings eben mit dem Import Wizard von Eclipse einwandfrei...
 

TheNoxier

Lieutenant
Dabei seit
Juni 2007
Beiträge
621
Hallo Capt.Mollow,

Bevor du mit falschen Einstellung, dekompilieren oder kruden Imports beginnst, mach es doch einfach so wie es gedacht ist :) - No offense @ all :)


Project-Properties -> Java Build Path -> Add Class Folder
... nicht mehr und nicht weniger.

Und die Klasse sollte in der Ordnerstruktur sein, wie in ihrem "package" beschrieben.
Aber anscheinend hält der Autor dieser "SNV" Class nicht viel von Konventionen und du musst nur den Ordner auswählen in dem die Klasse "direkt" liegt. - Egal wo der Ordner liegt und wenn er außerhalb des Projekt liegt, dann gibt ja noch den "Add External Class Folder" button :)


Gruß,
Nox
 

TheNoxier

Lieutenant
Dabei seit
Juni 2007
Beiträge
621
Ich habe schon extrem viele Import- und Buildpath-Einstellungen ausprobiert
Das heißt nicht, dass er es richtig gemacht hat :)

Aber ich teste gerade selber - und es sieht nicht "schön" aus.

Aktuell kann man die Klasse(n) nur verwenden, wenn die eigene Klasse in keinem Package ist. Ich gebe zu ich hab noch nie Klassen ohne Package gehabt - vielleicht aus dem Grund?

Ich test mal weiter...



EDIT:


Ich hab die Classes mal in den Ordner "BdV" verschoben. Und siehe da, mein Eclipse findet sie :)


Code:
package com.codenox.tools.syncostick;

import BdV.SNV;

class testset {
   public testset() {
     new SNV();
   }
}

*seufz* was hält Autoren davon ab jar-Files zu machen. Vor allem da der Autor schon mehr als zwei Dateien zum download anbietet.

Edit 2:

Ich hab mal ein zip aus den Klassen gemacht.
Einfach nach .jar umbenennen. Dann geht das :)


nox
 

Anhänge

Zuletzt bearbeitet:

Capt.Mollow

Cadet 2nd Year
Ersteller dieses Themas
Dabei seit
Juli 2004
Beiträge
18
Hey vielen Dank für die zahlreichen Antworten und Hinweise!!!

Ich habe gerade noch mal die ganzen empfohlenen Import-Sachen mit Build Path etc. durchgespielt, aber irgendwie mag mein Eclipse 3.3.2 das überhaupt nicht. Keine einzige der Möglichkeiten (auch BdV-Ordner) funktioniert bei mir... :(

Bis auf das mit dem .jar!!! ;)
Vielen Dank an TheNoxier!!! Ist ne echt geile Idee, denn das klappt als einziges bei mir, war schon voll am verzweifeln.... :D.
 

Capt.Mollow

Cadet 2nd Year
Ersteller dieses Themas
Dabei seit
Juli 2004
Beiträge
18
Das kann doch nicht wahr sein... :mad: :skull_alt:

Wenn ich die BdV.jar zum Build Path hinzufüge und import BdV.SNV schreibe, dann meckert zwar Eclipse nicht mehr und ergänzt beim Auto-Vervollständigen auch Methoder der SNV-Klasse, aber der Compiler macht bei: SNV.phi(0.865); die Fehlermeldung:
Exception in thread "main" java.lang.NoClassDefFoundError: SNV
at aufgabe_2.DiskV.ausgabe(DiskV.java:168)
at aufgabe_2.DiskV.main(DiskV.java:212)
Warum läuft das jetzt in Eclipse, aber kann nicht kompiliert werden???
 

TheNoxier

Lieutenant
Dabei seit
Juni 2007
Beiträge
621
Hmm... ich teste mal :)


Edit:

Bekomme den gleichen Fehler. Nachdem ich langsam die Geduld an diesem "Code" verliere, hab ich es decompiliert und mit einem package versehen. Danach wieder ne jar aus der SNV class gemacht. Nun gehts. Man sollte man den Autor anschreiben und darum bitten ein package zu verwenden. Das hätte das ganze Drama gar nicht erst aufkommen lassen.
Ich hab schon so viele externe Libraries verwendet und noch nie war eines ohne package. Macht auch keinen Spaß :)

Nox
 

Anhänge

Zuletzt bearbeitet:

Capt.Mollow

Cadet 2nd Year
Ersteller dieses Themas
Dabei seit
Juli 2004
Beiträge
18
Year coole Sache :), es funzt jetzt ja wirklich!!!
Vielen Dank für die kompentente Hilfe!!!

PS: Ihr kennt nicht zufällig nen Trick, wie man ne Tabelle, mit unterschiedlich langen Zellinhalten, gut formatiert auf der Konsole ausgeben kann??? Also das wirklich schön alles untereinander ist und nicht verrückt.
 
Top