Erstellen Sie ein Projekt, das die JAR-Datei in seinem Klassenpfad verwendet...

jono

Top Contributor
Ich soll eine Jar Datei mit class path in eclipse einbinden, wie mache ich das? Unser Dozent hat uns nur über die Kommandozeile gezeigt wie man class path anwendet aber nicht in der Entwicklungsumgebung . Kann mir da bitte einer weiterhelfen?
 
K

kneitzel

Gast
@jono was genau willst du denn machen?

Das was beschrieben wurde ist das einbinden der jar Datei bei einem Projekt in Eclipse.

Und sorry - zuerst hatte ich paar Threads verwechselt - hier geht es natürlich um Deine Thematik!
 

jono

Top Contributor
also inder jar Datei ist eine klasse enthalten und drei mathematische Funktionen, geht das auch mit einem decompiler?
 
K

kneitzel

Gast
Also für die Aufgabe brauchst du keinen Decompiler. Du kannst die Klassen direkt nutzen, wenn die jar Dateien im classpath enthalten sind.

Dazu kannst du die schon gezeigte Suche nutzen, ein Treffer war https://www.edureka.co/community/4028/how-to-import-a-jar-file-in-eclipse

Wenn du in eine jar Datei rein schauen möchtest, dann kannst du diese umbenennen in .zip und dann mit einem Programm Deiner Wahl öffnen. Aber wenn die die Klassen kennst, die in den jar Dateien drin sind, dann sehe ich da keinen Nutzen.
 

jono

Top Contributor
Ich kenne die klassen nicht da steht nur wie die Klasse heißt in der datei. Okay vielen dank. Ja nicht öffnen, sondern anzeigen, wie JustNoBody sagt. Ich werde es jetzt mal versuchen.
 

jono

Top Contributor
Es ist einfach nur so dass die Übung verlangt eine jar datei anzuzeigen und die mathematischen Funktionen in einer anderen klasse aufruft
 

jono

Top Contributor
So habe Ich es gemacht und so klappt es bei mir nicht
 

Anhänge

  • Screenshot_20200504_215232_com.android.chrome.jpg
    Screenshot_20200504_215232_com.android.chrome.jpg
    271,9 KB · Aufrufe: 9

jono

Top Contributor
Und nach unten gescrollt erscheint noch das hier.
 

Anhänge

  • Screenshot_20200504_220719_com.android.gallery3d.jpg
    Screenshot_20200504_220719_com.android.gallery3d.jpg
    453,2 KB · Aufrufe: 10

jono

Top Contributor
Das Problem ist die jar datei ist in einer zip datei, da man aber bei dem vorgehen über build path eine datei anklicken muss, wird diese direkt verwendet und in dieser ist dann eije lib und eine doc und eine pdf datei vorhanden
 

jono

Top Contributor
Bin neu in dem Kurs, wäre gut wenn mir jemand auf die Sprünge hilft, ich weiß schon was jar ist usw darum macht euch keine Sorgen auch wenn bisher nicht unbedingt erkennbar war.
 

thecain

Top Contributor
Wieso willst du das jetzt anschauen? Dazu brauchst du die source oder einen Decompiler... Du sollst es aber verwenden.

Liest du überhaupt was wir schreiben?
 

jono

Top Contributor
Ja ich lese was ihr schreibt. Wäre gut wenn du diesen Satz gerade nicht so abstrakt formuliert hättest, das Problem ist, ich soll es verwenden okay...
Was heißt denn jetzt verwenden, meinst du das in Bezug auf die 2. Aufgabe? Also deiner Aussage nach brauche ich jetzt keinen Decompiler und soll einfach eine andere Klasse erstellen in der ich diese Funktionen aufrufe ?
 

jono

Top Contributor
In der Vorlesung wird dazu weder ein Beispiel gemacht noch wird sowas in irgendeiner Form abstrahiert angeschnitten.
 

thecain

Top Contributor
Nein, da steht ausgegeben, nicht aufrufen mit Hilfe von System.out. Erstell einfach eine Instanz von IntMathImpl und ruf die Funktionen auf. Wie bei jeder Klasse aus dem jdk auch... Sonst geh bei den Vorlesungen nochmal ein paar Folien zurück. Mir wirds gerade ein bisschen zu doof...
 

jono

Top Contributor
Das ist doch genau das worum es mir hier geht, die 2. Aufgabe stellt das größte Problem dar und wenn der Prof dann sowas sagt wie: Wir wollen euch nicht ins kalte Wasser werfen wir wollen das ihr schwimmen lernt , na herzlichen Glückwunsch, deshalb frage ich ja auch hier nach, wird wahrscheinlich, wenn man weiß wie keine Schwierigkeit sein, weshalb es doch echt gerechtfertigt wäre wenn du mir dass erklären könntest..
 

jono

Top Contributor
Instanz wäre dann ja durch ein Import des packages wie im Screenshot möglich. Dann habe ich "IntMathsImpl intmaths = new IntMathsImpl();" in der Form die Instanz erzeugt.
Die Instanz ist nun erzeugt, wie aber gebe ich jetzt aus ?
Wenn ich wenigstens die Methodennamen der jar Datei wüsste, könnte ich ja durch ein import des packages der MathIntImpl Klasse durch System.out.println(MathIntImpl.get(Methodenname)) die funktionen ausgeben... Bitte um Hilfe
 
Zuletzt bearbeitet:
K

kneitzel

Gast
Also Eclipse bietet eine Auto Vervollständigung.
Wenn du also schon eine Instanz intmaths hast, dann kannst Du einmal schreiben: intmaths. und dann drückst Du Strg + Leertaste und dann sollte Dir Eclipse die Möglichkeiten anzeigen.

Schau Dir am Besten auch mal
an wenn du mit Eclipse arbeiten möchtest.
 

jono

Top Contributor
Okay, habe ich gemacht und was genau ist jetzt die Instanz von IntMathsImpl? Wie bilde ich die in einer anderen Klasse? Vor allem wie rufe ich jetzt die Funktionen aus der Klasse auf ?
 

jono

Top Contributor
Mir ist gerade aufgefallen, es gibt ja einmal die IntMaths.class und die IntMathsImpl.class, die IntMaths.class ist ein interface, jetzt habe ich
die 3 Funktionen aufgerufen in dem ich auf
Java:
public class Functions implements IntMaths
Functions wurde rot unterkringelt, wo drunter stand: Add unimplemented methods, das habe ich dann gemacht und es sind dann folgende Methoden entstanden:
Java:
public class Functions implements IntMaths {
 public static void main(String[] args) {
  System.out.println(IntMathsImpl.class);
 }
 @Override
public int gcd(int arg0, int arg1) {
// TODO Auto-generated method stub
return 0;
 }
 @Override
public int sqrt(int arg0) {
// TODO Auto-generated method stub
return 0;
 }
 @Override
public int square(int arg0) {
// TODO Auto-generated method stub
return 0;
 }
Wie gebe ich jetzt das Ergebnis über System.out aus ?
 
K

kneitzel

Gast
Das ist doch so wie überall.

Du hast eine beliebige Klasse (ich nenne meine Klasse mal Test) mit einer beliebigen Methode (ich nehme mal die static main Methode). Und da kannst Du Instanzen einer Klasse erzeugen (Ich nehme mal die Klasse String) und darauf Methoden aufrufen (Ich nehme mal einfach die Methode length):

Code:
public class Test {
  public static void main(String[] args) {
    String testInstanz = new String("abc");
    int length = testInstanz.length();
    System.out.println(length);
  }
}
 

jono

Top Contributor
Java:
 public static void main(String[] args) {
IntMaths result = new IntMaths();
int gcd = result.gcd(gcd, gcd);
  System.out.println(gcd);
 }
Warum wird IntMaths rot unterstrichen?
 
K

kneitzel

Gast
IntMaths ist ein Interface und Du kannst keine Instanz von einem Interface erzeugen. Du wolltest vielleicht
IntMaths result = new IntMathsImpl();
schreiben.

Und das
int gcd = result.gcd(gcd, gcd);
macht wenig Sinn. Du definierst gcd ja erst. Was willst Du denn bei result.gcd genau übergeben?
 

temi

Top Contributor
This package contains the interface IntMaths and its implementation in the class IntMathsImpl.
Write a class that calls the three functions and prints the result on System.out
Es steht doch alles haarklein da:

Das Package enthält das Interface IntMaths und seine Implementation in der Klass IntMathsImpl.
Schreibe eine Klasse, die die drei (im Interface enthaltenen) Methoden aufruft und gib das Ergebnis auf System.out aus.

Beispiel mit Interface, Implementation und Ausgabe:
Java:
// fürs Beispiel nur eine Methode, keine drei
interface Foo {
    int add(int value1, int value2);
}

class FooImpl implements Foo {
    @Override
    public int add(int value1, int value2) {
        return value1 + value2;
    }
}

class Test {
    Foo foo = new Foo();
    
    int result = foo.add(41, 1);
    System.out.println(result);
}

Sag mal @jono, wir haben im Dezember doch seitenlang über äußere und innere Klassen und Milchprodukte geschrieben. Und jetzt weißt du immer noch nicht, wie man die Instanz einer Klasse erzeugt und Methoden darauf aufruft?
 

jono

Top Contributor
@temi Ich weiß wie man Instanzen einer Klasse erzeugt. Das Problem ist dass ich es länger nicht mehr gemacht habe. Außerdem habe ich das mit dem Interface selbst herausbekommen und ich habe lediglich oben etwas versucht, weil ich das in Zusammenhang mit einer Interface einfach nicht mehr wusste. Du musst doch nicht gleich so antworten.
Java:
Foo foo = new Foo(); muss natürlich Foo foo = new FooImpl(); sein.
Warum jetzt nicht Foo foo = new Foo(); ? So kenne ich das nämlich
 

jono

Top Contributor
@thecain Alles vorkauen ist auch etwas übertrieben, ich wusste es nicht im zusammenhang mit einem interface hab das einfach nicht mehr in erinnerung gehabt, es ist nicht so das ich alles vergessen habe, genau im Gegenteil habe vieles hier gelernt und behalten auch das mit Instanzerzeugung ist ja kein Problem eigentlich nur ich frage lieber nach bevor ich da etwas falsch mache. und wenn ich dann ein wenig falsch mache , bekommt man dann so eine Antwort :D.
Java:
Nein, da steht ausgegeben, nicht aufrufen mit Hilfe von System.out. Erstell einfach eine Instanz von IntMathImpl und ruf die Funktionen auf. Wie bei jeder Klasse aus dem jdk auch... Sonst geh bei den Vorlesungen nochmal ein paar Folien zurück. Mir wirds gerade ein bisschen zu doof...
Hier sagst du ich soll eine Instanz von IntMathImpl erstellen. Dazu brauche ich erstmal den Namen der Methode, in dem ich "class Functions implements IntMaths {}" benutze, erst so bringt mir die instanzerzeugung etwas.
 
Zuletzt bearbeitet:
K

kneitzel

Gast
Wenn Du da zwei Integer übergeben willst, dann mach das doch. Also entweder übergibst du da direkt ein Integer Literal oder du definierst Variablen, denen Du erst einmal einen Wert zuweist.

Die deklarierte Variable gcd nutzt du da, ohne dass ihr ein Wert zugewiesen wurde. Bei einer lokalen Variable müsste da eigentlich der Compiler meckern, denn lokale Variablen sind nicht vorab mit 0 initialisiert (wie es z.B. bei Instanzvariablen der Fall wäre).
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S UML Klassendiagramm erstellen Softwareentwicklung 2
stg Performantes Erstellen von Excel-Dateien Softwareentwicklung 5
S Tradingbot selbst erstellen? Softwareentwicklung 12
L Konzept erstellen Softwareentwicklung 8
L Bildergalerie erstellen / programmieren Softwareentwicklung 4
T nur EIN objekt einer klasse erstellen ? Softwareentwicklung 2
N Dynamische Objekt anzahl erstellen Softwareentwicklung 4
A Klassendiagramm erstellen Softwareentwicklung 1
D Erstellen von Dokumentation? Softwareentwicklung 3
F Verzeichnis mit VBA erstellen Softwareentwicklung 3
I Software zum Erstellen von ER-Modellen Softwareentwicklung 12
B SVN im agilen Projekt - 3 Systemlandschaft Softwareentwicklung 2
OnDemand Projekt mit Jira und Confluence sturkturieren Softwareentwicklung 3
D Herangehensweise Software-Projekt Softwareentwicklung 1
S Grüne Wiese Projekt Softwareentwicklung 3
S Suche: (Versionierungs)Tool für Klassenaustausch mit Kollegen, die auch an dem Projekt arbeiten Softwareentwicklung 5
C Lohnt es sich noch ein neues Projekt in C++ anstatt Java zu realisieren? Softwareentwicklung 4
B Allgemeine Fragen für eigenes Projekt Softwareentwicklung 4
D Frage zu meiner Vorgehensweise in einem Projekt Softwareentwicklung 5
R Webseite in verschiedenen Sprachen - Webshop Projekt Softwareentwicklung 3
musiKk wie fangt ihr ein Projekt an? Softwareentwicklung 5
W Wie fang ich ein Projekt an? Softwareentwicklung 22
P Projekt und Klassen Verwaltung (Wiederverwendung) Softwareentwicklung 4
S Datenbank Projekt Softwareentwicklung 2
U Geeignete Plattform für Projekt (JSP, PHP, Java-Anwendung) Softwareentwicklung 7
tiluhe Slider und Switch Zustand auf Website in JSON Datei schreiben/lesen Softwareentwicklung 7
K Einlesen einer .dat-Datei (verschiedene Formate) | Entwicklung unter Einsatz von Design-Patterns Softwareentwicklung 0
B Datei einlesen in C++ Softwareentwicklung 5
B .BAT datei Parameter Softwareentwicklung 4
E CSV-Datei im SQL Navigator oder Oracle SQL Dev. importieren? Softwareentwicklung 1
M Datei-Typ-Design Softwareentwicklung 10
J Prüfen ob JavaScript in HTML-Datei verwendet wird Softwareentwicklung 3
R EXE Datei in eigener PW geschützter EXE kapseln Softwareentwicklung 3
C Filterung von geraden und ungeraden Zahlen aus einer Datei Softwareentwicklung 4
D Index-sequentielle Datei Softwareentwicklung 4
D pdf-Datei ausdrucken Softwareentwicklung 2

Ähnliche Java Themen

Neue Themen


Oben