Zum Inhalt springen

Wie importiere ich eine Klasse aus dem Root?


Devilmarkus

Empfohlene Beiträge

Hallo zusammen,

ich habe folgendes Problem:

Ich möchte eine Library verwenden, welche ich leider nicht in Source-Form habe.

Das Problem ist aber, dass die .class Dateien direkt im "Root" der .JAR Datei stehen.

Import mainclass.class funktioniert also nicht.

Die Source, die die Library importieren soll, ist NICHT im Root!

Beispiel:

Ich habe eine Klasse in classes.media

Diese beginnt logischerweise mit

Package classes.media;

Wie kann ich dieser Klasse nun begreiflich machen, dass sie converter.class aus dem Root importieren soll?

Import ../../converter.class geht ja nicht...

Gibt es dafür eine Lösung?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Meine Idee wäre ja sowas hier:

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package jemu.ui;



/**

 *

 * @author Markus

 */

public class Converter {


    public Class converter;


    public void init() {

        ClassLoader classLoader = Converter.class.getClassLoader();


        try {

            converter = classLoader.loadClass("Converter");

        } catch (ClassNotFoundException e) {

            converter = null;

        }


    }

}

Nur habe ich nun das Problem, dass ich zwar "Converter.class" lese, damit aber nichts anfangen kann?

Ich muss ja anschliessend z.b.

converter.Cycle(); ausführen können...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich kenne nur den Weg über Reflection. In dem Beispiel unten wird die Klasse via Reflection geladen und dann die in deiner Klasse enthaltenen Methoden aufgerufen.


//Klasse ohne package

public class Converter {


	public String sayHello(String name)

	{

		return "Hello " + name + "!";

	}


}

Hier jetzt die Klasse die deine Klasse ohne package lädt und auch benutzen kann.

package some.packagename;


import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;


public class ConverterWithPackage {


	Class converterWithoutPackage;

	Object converterWithoutPackageInstance;


	void init() throws ClassNotFoundException, InstantiationException,

			IllegalAccessException {

		converterWithoutPackage = Class.forName("Converter");


		converterWithoutPackageInstance = converterWithoutPackage.newInstance();

	}


	public void sayHello(String name) throws SecurityException,

			NoSuchMethodException, IllegalArgumentException,

			IllegalAccessException, InvocationTargetException {

		Method sayHello = converterWithoutPackage.getMethod("sayHello",

				new Class[] { String.class });

		String hello = (String) sayHello.invoke(

				converterWithoutPackageInstance, new String[] { name });


		System.out.println(hello);

	}


	public static void main(String[] args) throws ClassNotFoundException,

			SecurityException, NoSuchMethodException, IllegalArgumentException,

			IllegalAccessException, InvocationTargetException,

			InstantiationException {


		ConverterWithPackage converterWithPackage = new ConverterWithPackage();

		converterWithPackage.init();

		converterWithPackage.sayHello("Bernd");


	}


}

Bearbeitet von Schiller256
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...