# Klassenpfad Eclipse setzen



## tinella (14. März 2006)

*Hallo*

ich möchte den Klassenpfad für Eclipse setzen, damit ich eine Klasse auslesen  kann.
Die Version welche ich implementiert habe gibt zwar den veränderten Klassenpfad aus, setzt ihn jedoch nicht in Eclipse.

Wie kann ich ihn im .classpath-File abspeichern?

Folgender Code verändert den Pfad speichert ihn jedoch nicht ab:

```
JarFile jar = null;
		try {
			jar = new JarFile("C:/devworkspace/AEPWorkspace/IPA/Testverzeichnis/TestOrdner/WebWalker.jar");
			System.out.println("Erfolgreiche Instanzierung JarFile");
		} catch (IOException e1) {
			System.out.println("Fehlgeschlagene Instanzierung JarFile");
			e1.printStackTrace();
		}
		
		// Systempropertys neu setzen
	    String pathSeparator = System.getProperty("path.separator");
	    String javaClassPath = System.getProperty("java.class.path");
	   
	    System.setProperty("java.class.path", javaClassPath + pathSeparator + jar.getName());
	    // set the system properties
	    // display new properties
	    System.out.println("Inhalt gesetzte Properties: " + System.getProperty("java.class.path"));
	    
	    // hier in File schreiben (falls nicht automatisch!)
	    //
```


Wäre um eine Antwort wirklich sehr froh, ich krieg einfach nicht raus was ich denn noch tun muss  


_Danke
Tinella_


----------



## Thomas Darimont (14. März 2006)

Hallo!

Um den Classpath eines Java Projektes  innerhalb von Eclipse programmatisch zu setzen koenntest du beispielsweise so vorgehen:

```
package de.tutorials.jdt_plugin.example.popup.actions;

import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IActionDelegate;
import org.eclipse.ui.IObjectActionDelegate;
import org.eclipse.ui.IWorkbenchPart;

public class ManipulateClassPathExampleAction implements IObjectActionDelegate {

	/**
	 * Constructor for Action1.
	 */
	public ManipulateClassPathExampleAction() {
		super();
	}

	/**
	 * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
	 */
	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
	}

	/**
	 * @see IActionDelegate#run(IAction)
	 */
	public void run(IAction action) {
		Shell shell = new Shell();
		MessageDialog.openInformation(shell, "Example Plug-in",
				"New Action was executed.");
	}

	/**
	 * @see IActionDelegate#selectionChanged(IAction, ISelection)
	 */
	public void selectionChanged(IAction action, ISelection selection) {

		if (selection instanceof IStructuredSelection) {
			IStructuredSelection structuredSelection = (IStructuredSelection) selection;
			Object firstElement = structuredSelection.getFirstElement();
			if (firstElement instanceof IJavaProject) {
				IJavaProject javaProject = (IJavaProject) firstElement;
				try {
					int oldClassPathEntriesCount = javaProject
							.getRawClasspath().length;
					IClasspathEntry[] classpathEntries = new IClasspathEntry[oldClassPathEntriesCount + 1];
					System.arraycopy(javaProject.getRawClasspath(), 0,
							classpathEntries, 0, oldClassPathEntriesCount);
					classpathEntries[oldClassPathEntriesCount + 1] = JavaCore
							.newLibraryEntry(
									new Path(
											"D:/springframework/1.2.6/spring-framework-1.2.6/dist/spring.jar"),
									null, null);
					javaProject.setRawClasspath(classpathEntries,
							new NullProgressMonitor());
				} catch (JavaModelException e) {
					e.printStackTrace();
				}
			}
		}
	}
}
```

Gruss Tom


----------

