Auto-Import generierte Java-Klasse ?

ssoul26

Bekanntes Mitglied
Servus,
ich hab ein Eclipse-Plugin entwickelt, womit nun GUI-Klassen per Mausklick generiert werden. Jedoch stehe ich vor einem kleinen Problem, nämlich den Imports (Klassenbibliotheken). Habt ihr da Vorschläge, wie ich das mit den Imports klären könnte? Ansonsten muss ich das immer manuell nachtragen (Tastenkombination in Eclipse).

Lg, ssoul
 

ssoul26

Bekanntes Mitglied
Danke Marco für die schnelle Antwort. Das ist durchaus möglich, wird auch wahrscheinlich so laufen, gibt es da noch andere Lösungen?
 

ssoul26

Bekanntes Mitglied
So, Problem wäre fürs erste gelöst. Momentan wird einfach die erste gefunden Klasse hergenommen. Hier kann man natürlich einiges verbessern. Ansonsten reicht es total aus:

Java:
package main;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.List;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
/**
 * @author ssoul
 * 
 */
public class BWImportFinder {
   public static final String Import_Not_Found = "No such Class found!";

   private static final String _sSystemLibraries = System.getProperty("sun.boot.class.path");

   private static final String _sUserLibraries = System.getProperty("java.class.path");

   private static ArrayList<String> _Jars;

   private BWImportFinder() {
   }

   /**
    * Search through available Packages the given Classname.
    * 
    * @param cClassname
    * @return Import Tag for given Classname.
    */
   public static String searchImport(String cClassname) {
      getAllJars();
      try {
         String sTemp;
         for (String s : _Jars) {
            if (s.endsWith(".jar")) {
               File f = new File(s);
               if (f.exists()) {
                  JarFile temp = new JarFile(f);
                  sTemp = searchClass(temp, cClassname);
                  if (!sTemp.equals(Import_Not_Found)) {
                     return sTemp;
                  } else {
                     continue;
                  }
               }
            }
         }
      } catch (Exception ex) {
         ex.printStackTrace();
         return Import_Not_Found;
      }
      return Import_Not_Found;
   }

   private static void getAllJars() {
      List<String> tempfiles;
      _Jars = new ArrayList<String>();
      try {
         // Get UserLibraries
         tempfiles = Arrays.asList(_sUserLibraries.split(";"));
         for (String s : tempfiles) {
            if (s.endsWith(".jar")) {
               _Jars.add(s);
            }
         }
      } catch (Exception ex1) {
         ex1.printStackTrace();
         System.out.println("Couldnt load Userlibraries!");
      }
      try {
         // Get SystemLibraries
         tempfiles = Arrays.asList(_sSystemLibraries.split(";"));
         for (String s : tempfiles) {
            if (s.endsWith(".jar")) {
               _Jars.add(s);
            }
         }
      } catch (Exception ex2) {
         ex2.printStackTrace();
         System.out.println("Couldnt load Systemlibraries");
      }
   }

   private static String searchClass(JarFile Jar, String sClass) {
      String temp;
      Enumeration<JarEntry> e = Jar.entries();
      while (e.hasMoreElements()) {
         String s = e.nextElement().toString();
         if (s.endsWith(".class")) {
            temp = s;
            if (temp.contains("$")) {
               temp = temp.substring(0, temp.indexOf("$"));
            } else {
               temp = temp.substring(0, temp.lastIndexOf("."));
            }
            String stemp = temp.substring(temp.lastIndexOf("/") + 1);
            if (stemp.equals(sClass)) {
               return "import " + temp.replace("/", ".") + ";";
            }
         }
      }
      return Import_Not_Found;
   }
}
 
D

dhalsim

Gast
Wenn du weiterhin Eclipse-Plugins machst würde ich dir von solchen "dirty hacks" eher abraten. Schau dir lieber das JDT an und wie sowas offiziell gehandhabt wird.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Fahrtrichtung eines selbstfahrenden Auto ändern Allgemeine Java-Themen 3
U Richfaces Calendar Auto Korrektur Allgemeine Java-Themen 2
R Hinzufügen von Dateien in einem Verzeichniss Auto. erkennen! Allgemeine Java-Themen 15
G JPanel auto scrollen Allgemeine Java-Themen 2
G Auto. Typumwandlung bei a / 2? Allgemeine Java-Themen 5
P Selenium Scriipt zeigt Fehler beim Import Allgemeine Java-Themen 3
F Reason: Missing Constraint: Import-Package: okhttp3.internal.http; version="0.0.0" Allgemeine Java-Themen 0
bueseb84 Fehler beim Import von Maven Dependencies aus lokalem artifactory Allgemeine Java-Themen 2
G Langtexte - Cellformat import in Excel Allgemeine Java-Themen 3
M import Fehler Allgemeine Java-Themen 2
S import meine.eigenes.import Allgemeine Java-Themen 6
S Problem mit CSV-Import in OpenOffice Allgemeine Java-Themen 8
J "unused"-Warnungen für import-Anweisungen unterdrücken Allgemeine Java-Themen 9
X CATIA Konstuktionsdaten Import- Darstellung Allgemeine Java-Themen 4
R import von Jasper (für SICStus Prolog) klappt nicht Allgemeine Java-Themen 2
T Class Not Found Exception beim import von Paket Allgemeine Java-Themen 2
K import- Anweisung fehlerhaft und andere Fehler (eclipse) Allgemeine Java-Themen 2
N import com.sun.tools.javac.Main; Allgemeine Java-Themen 1
Developer_X Import Java3D in der Eingabeaufforderung Allgemeine Java-Themen 12
D Hilfe bei ZIP-import benötigt Allgemeine Java-Themen 13
P Import Fehler Allgemeine Java-Themen 5
G Import von HTML-Dateien Allgemeine Java-Themen 5
E (einfaches) Problem mit import und package (export) Allgemeine Java-Themen 4
E Warum kein Import? Allgemeine Java-Themen 3
M Import findet das Projekt nicht. Allgemeine Java-Themen 5
@ [Eclipse] Fehlermeldung bei import-Anweisung Allgemeine Java-Themen 3
E import mittels Eclipse Allgemeine Java-Themen 3
R import Klassen Allgemeine Java-Themen 3
D Problem mit import von jdic Systemtray Allgemeine Java-Themen 2
V Verständnisproblem Eclipse BuildPath <-> Import Jar Fi Allgemeine Java-Themen 1
S Enums - statischer import Allgemeine Java-Themen 2
K Import von jar-Dateien Allgemeine Java-Themen 2
K bitte um hilfe bei file import Allgemeine Java-Themen 7
P Import Allgemeine Java-Themen 9
S import vs. extends Allgemeine Java-Themen 2
B Static Import: Syntaxfrage Allgemeine Java-Themen 2
G Classpath, Packages und Import Allgemeine Java-Themen 3
X Selenium - Per Webdriver, Javascript generierte links klicken Allgemeine Java-Themen 0
P Variablen Auf durch for-Schleife generierte JComboBox zugreifen Allgemeine Java-Themen 3
G Events und Automatisch generierte Unterklassen! Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben