2012-04-06 8 views
2

Es gibt zwei Projekte in Eclipse! Wie reflektiert man eine Klasse in einem anderen Projekt? Ich habe den Klassenpfad eines anderen Projekts in die Systemeigenschaft eingefügt. aber immer noch Popup-Klasse nicht gefunden Ausnahme. Gibt es dafür eine gute Lösung?Wie man die Klasseninformationen eines anderen Projekts widerspiegelt

System.out.println(System.getProperty("java.class.path"));   

System.getProperties().put("java.class.path", 
    System.getProperty("java.class.path") + 
     ";C:\\Users\\fu.jian\\workspace\\Study\\bin"); 

System.out.println(System.getProperty("java.class.path")); 

Class<?> forName2 = Class.forName("study.Activator"); 
System.out.println(forName2); 
+0

nicht funktionieren: Eigenschaften erweitert Hashtable. Put oder Set ist gleich für die Karte. – jiafu

+0

funktioniert nicht. meinst du das? 'System.out.println (System.getProperty ("java.class.path")); Eigenschaften properties = System.getProperties(); properties.setProperty ("java.class.path", properties.getProperty ("java.class.path") + "; C: \\ Benutzer \\ fu.jian \\ workspace \\ Study \\ bin"); System.setProperties (Eigenschaften); System.out.println (System.getProperty ("java.class.path")); Klasse forName2 = Class.forName ("study.Activator"); System.out.println (fürName2); ' – jiafu

+0

URL [] URLs = neue URL [] {neue URL ( \t \t \t \t "Datei:/C: /Users/fu.jian/workspace/Study/bin/")}; \t \t \t \t URLClassLoader loader = neu URLClassLoader (URLs); \t \t Klasse loadClass = loader.loadClass ("study.Activator"); \t \t System.out.println (loadClass); – jiafu

Antwort

2

Klicken Sie mit der rechten Maustaste auf das Projekt, um das Kontextmenü aufzurufen.

Build-Weg-> Konfigurieren Build Path

Unter dem Java Build Path Dialog wählen Sie die Projekte Registerkarte und das Projekt hinzuzufügen.

+0

3ks, ich kenne diese Lösung. Eigentlich. es wird als ein Projekt betrachtet. Mein erstes Ziel ist es, es ohne manuelle Bedienung zu vervollständigen. – jiafu

+0

URL [] URLs = neue URL [] {neue URL ( \t \t \t \t "Datei:/C: /Users/fu.jian/workspace/Study/bin/")}; \t \t \t \t URLClassLoader loader = neu URLClassLoader (URLs); \t \t Klasse loadClass = loader.loadClass ("study.Activator"); \t \t System.out.println (loadClass); – jiafu

0

versuchen, das Projekt B zu Classpath von Projekt A hinzufügen von:

In Eclipse- Klick auf Projekt A -> rechte Maustaste und wählen Sie Eigenschaften -> Wählen Sie Java Build Path -> Wählen Projekte tab -> Klicken Sie auf hinzufügen ... und überprüfen Projekt B

Das Problem in Eclipse gelöst werden, wenn Sie externe Tools für die Erstellung und den Bau des Projekts verwenden - Ihr Problem wird immer noch angezeigt. Sie können das Projekt B als jar exportieren und das jar in das Projekt A libs kopieren. Auf diese Weise werden Sie nicht auf Eclipse angewiesen sein.

+0

Danke für Ihre Antwort. Ihre Antwort lautet similer mit der obigen Wiedergabe. Holen Sie sich das Ziel, indem Sie ein Projekt werden. Aber ich denke, wenn es einen Ort gibt, um die Klassenpfade zu ändern, um die Klasse zu laden.Alter – jiafu

+0

URL [] URLs = neue URL [] {neue URL ( \t \t \t \t "Datei:/C: /Users/fu.jian/workspace/Study/bin/")}; \t \t \t \t URLClassLoader loader = neu URLClassLoader (URLs); \t \t Klasse loadClass = loader.loadClass ("study.Activator"); \t \t System.out.println (loadClass); – jiafu

+0

Um sie in ein Projekt zu bringen, ist das am besten, weil Sie das Problem vermeiden werden. Wenn Sie noch eine Klasse von einem anderen Ort laden wollen, können Sie das sicher mit URLCLassLoader machen. Selbst es ist eine sehr unelegante Lösung. –

Verwandte Themen