|
Eclipse JDT Release 3.0 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
A Java project represents a view of a project resource in terms of Java elements such as package fragments, types, methods and fields. A project may contain several package roots, which contain package fragments. A package root corresponds to an underlying folder or JAR.
Each Java project has a classpath, defining which folders contain source code and
where required libraries are located. Each Java project also has an output location,
defining where the builder writes .class
files. A project that
references packages in another project can access the packages by including
the required project in a classpath entry. The Java model will present the
source elements in the required project; when building, the compiler will use
the corresponding generated class files from the required project's output
location(s)). The classpath format is a sequence of classpath entries
describing the location and contents of package fragment roots.
This interface is not intended to be implemented by clients. An instance
of one of these handles can be created via
JavaCore.create(project)
.
JavaCore.create(org.eclipse.core.resources.IProject)
,
IClasspathEntry
Field Summary |
Fields inherited from interface org.eclipse.jdt.core.IJavaElement |
CLASS_FILE, COMPILATION_UNIT, FIELD, IMPORT_CONTAINER, IMPORT_DECLARATION, INITIALIZER, JAVA_MODEL, JAVA_PROJECT, LOCAL_VARIABLE, METHOD, PACKAGE_DECLARATION, PACKAGE_FRAGMENT, PACKAGE_FRAGMENT_ROOT, TYPE |
Method Summary | |
IJavaElement |
findElement(IPath path)
Returns the IJavaElement corresponding to the given
classpath-relative path, or null if no such
IJavaElement is found. |
IJavaElement |
findElement(IPath path,
WorkingCopyOwner owner)
Returns the IJavaElement corresponding to the given
classpath-relative path, or null if no such
IJavaElement is found. |
IPackageFragment |
findPackageFragment(IPath path)
Returns the first existing package fragment on this project's classpath whose path matches the given (absolute) path, or null if none
exist.
|
IPackageFragmentRoot |
findPackageFragmentRoot(IPath path)
Returns the existing package fragment root on this project's classpath whose path matches the given (absolute) path, or null if
one does not exist.
|
IPackageFragmentRoot[] |
findPackageFragmentRoots(IClasspathEntry entry)
Returns the existing package fragment roots identified by the given entry. |
IType |
findType(String fullyQualifiedName)
Returns the first type found following this project's classpath with the given fully qualified name or null if none is found.
|
IType |
findType(String packageName,
String typeQualifiedName)
Returns the first type found following this project's classpath with the given package name and type qualified name or null if none is found.
|
IType |
findType(String packageName,
String typeQualifiedName,
WorkingCopyOwner owner)
Returns the first type found following this project's classpath with the given package name and type qualified name or null if none is found.
|
IType |
findType(String fullyQualifiedName,
WorkingCopyOwner owner)
Returns the first type found following this project's classpath with the given fully qualified name or null if none is found.
|
IPackageFragmentRoot[] |
getAllPackageFragmentRoots()
Returns all of the existing package fragment roots that exist on the classpath, in the order they are defined by the classpath. |
Object[] |
getNonJavaResources()
Returns an array of non-Java resources directly contained in this project. |
String |
getOption(String optionName,
boolean inheritJavaCoreOptions)
Helper method for returning one option value only. |
Map |
getOptions(boolean inheritJavaCoreOptions)
Returns the table of the current custom options for this project. |
IPath |
getOutputLocation()
Returns the default output location for this project as a workspace- relative absolute path. |
IPackageFragmentRoot |
getPackageFragmentRoot(IResource resource)
Returns a package fragment root for the given resource, which must either be a folder representing the top of a package hierarchy, or a .jar or .zip file.
|
IPackageFragmentRoot |
getPackageFragmentRoot(String jarPath)
Returns a package fragment root for the JAR at the specified file system path. |
IPackageFragmentRoot[] |
getPackageFragmentRoots()
Returns all of the package fragment roots contained in this project, identified on this project's resolved classpath. |
IPackageFragmentRoot[] |
getPackageFragmentRoots(IClasspathEntry entry)
Deprecated. Use IJavaProject#findPackageFragmentRoots instead |
IPackageFragment[] |
getPackageFragments()
Returns all package fragments in all package fragment roots contained in this project. |
IProject |
getProject()
Returns the IProject on which this IJavaProject
was created. |
IClasspathEntry[] |
getRawClasspath()
Returns the raw classpath for the project, as a list of classpath entries. |
String[] |
getRequiredProjectNames()
Returns the names of the projects that are directly required by this project. |
IClasspathEntry[] |
getResolvedClasspath(boolean ignoreUnresolvedEntry)
This is a helper method returning the resolved classpath for the project as a list of simple (non-variable, non-container) classpath entries. |
boolean |
hasBuildState()
Returns whether this project has been built at least once and thus whether it has a build state. |
boolean |
hasClasspathCycle(IClasspathEntry[] entries)
Returns whether setting this project's classpath to the given classpath entries would result in a cycle. |
boolean |
isOnClasspath(IJavaElement element)
Returns whether the given element is on the classpath of this project, that is, referenced from a classpath entry and not explicitly excluded using an exclusion pattern. |
boolean |
isOnClasspath(IResource resource)
Returns whether the given resource is on the classpath of this project, that is, referenced from a classpath entry and not explicitly excluded using an exclusion pattern. |
IEvaluationContext |
newEvaluationContext()
Creates a new evaluation context. |
ITypeHierarchy |
newTypeHierarchy(IRegion region,
IProgressMonitor monitor)
Creates and returns a type hierarchy for all types in the given region, considering subtypes within that region. |
ITypeHierarchy |
newTypeHierarchy(IRegion region,
WorkingCopyOwner owner,
IProgressMonitor monitor)
Creates and returns a type hierarchy for all types in the given region, considering subtypes within that region and considering types in the working copies with the given owner. |
ITypeHierarchy |
newTypeHierarchy(IType type,
IRegion region,
IProgressMonitor monitor)
Creates and returns a type hierarchy for the given type considering subtypes in the specified region. |
ITypeHierarchy |
newTypeHierarchy(IType type,
IRegion region,
WorkingCopyOwner owner,
IProgressMonitor monitor)
Creates and returns a type hierarchy for the given type considering subtypes in the specified region and considering types in the working copies with the given owner. |
IPath |
readOutputLocation()
Returns the default output location for the project as defined by its .classpath file from disk, or null
if unable to read the file.
|
IClasspathEntry[] |
readRawClasspath()
Returns the raw classpath for the project as defined by its .classpath file from disk, or null
if unable to read the file.
|
void |
setOption(String optionName,
String optionValue)
Helper method for setting one option value only. |
void |
setOptions(Map newOptions)
Sets the project custom options. |
void |
setOutputLocation(IPath path,
IProgressMonitor monitor)
Sets the default output location of this project to the location described by the given workspace-relative absolute path. |
void |
setRawClasspath(IClasspathEntry[] entries,
IPath outputLocation,
IProgressMonitor monitor)
Sets the both the classpath of this project and its default output location at once. |
void |
setRawClasspath(IClasspathEntry[] entries,
IProgressMonitor monitor)
Sets the classpath of this project using a list of classpath entries. |
Methods inherited from interface org.eclipse.jdt.core.IParent |
getChildren, hasChildren |
Methods inherited from interface org.eclipse.jdt.core.IJavaElement |
exists, getAncestor, getCorrespondingResource, getElementName, getElementType, getHandleIdentifier, getJavaModel, getJavaProject, getOpenable, getParent, getPath, getPrimaryElement, getResource, getSchedulingRule, getUnderlyingResource, isReadOnly, isStructureKnown |
Methods inherited from interface org.eclipse.core.runtime.IAdaptable |
getAdapter |
Methods inherited from interface org.eclipse.jdt.core.IOpenable |
close, getBuffer, hasUnsavedChanges, isConsistent, isOpen, makeConsistent, open, save |
Method Detail |
public IJavaElement findElement(IPath path) throws JavaModelException
IJavaElement
corresponding to the given
classpath-relative path, or null
if no such
IJavaElement
is found. The result is one of an
ICompilationUnit
, IClassFile
, or
IPackageFragment
.
When looking for a package fragment, there might be several potential matches; only one of them is returned.
For example, the path "java/lang/Object.java", would result in the
ICompilationUnit
or IClassFile
corresponding to
"java.lang.Object". The path "java/lang" would result in the
IPackageFragment
for "java.lang".
path
- the given classpath-relative path
IJavaElement
corresponding to the given
classpath-relative path, or null
if no such
IJavaElement
is found
JavaModelException
- if the given path is null
or absolutepublic IJavaElement findElement(IPath path, WorkingCopyOwner owner) throws JavaModelException
IJavaElement
corresponding to the given
classpath-relative path, or null
if no such
IJavaElement
is found. The result is one of an
ICompilationUnit
, IClassFile
, or
IPackageFragment
. If it is an ICompilationUnit
,
its owner is the given owner.
When looking for a package fragment, there might be several potential matches; only one of them is returned.
For example, the path "java/lang/Object.java", would result in the
ICompilationUnit
or IClassFile
corresponding to
"java.lang.Object". The path "java/lang" would result in the
IPackageFragment
for "java.lang".
path
- the given classpath-relative pathowner
- the owner of the returned compilation unit, ignored if it is
not a compilation unit.
IJavaElement
corresponding to the given
classpath-relative path, or null
if no such
IJavaElement
is found
JavaModelException
- if the given path is null
or absolutepublic IPackageFragment findPackageFragment(IPath path) throws JavaModelException
null
if none
exist.
The path can be:
- internal to the workbench: "/Project/src"
- external to the workbench: "c:/jdk/classes.zip/java/lang"
path
- the given absolute path
null
if none
exist
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourcepublic IPackageFragmentRoot findPackageFragmentRoot(IPath path) throws JavaModelException
null
if
one does not exist.
The path can be:
- internal to the workbench: "/Compiler/src"
- external to the workbench: "c:/jdk/classes.zip"
path
- the given absolute path
null
if
one does not exist
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourcepublic IPackageFragmentRoot[] findPackageFragmentRoots(IClasspathEntry entry)
If the classpath entry denotes a variable, it will be resolved and return the roots of the target entry (empty if not resolvable).
If the classpath entry denotes a container, it will be resolved and return the roots corresponding to the set of container entries (empty if not resolvable).
entry
- the given entry
IClasspathContainer
public IType findType(String fullyQualifiedName) throws JavaModelException
null
if none is found.
The fully qualified name is a dot-separated name. For example,
a class B defined as a member type of a class A in package x.y should have a
the fully qualified name "x.y.A.B".
Note that in order to be found, a type name (or its toplevel enclosing
type name) must match its corresponding compilation unit name. As a
consequence, secondary types cannot be found using this functionality.
Secondary types can however be explicitely accessed through their enclosing
unit or found by the SearchEngine
.
fullyQualifiedName
- the given fully qualified name
null
if none is found
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourceIType.getFullyQualifiedName(char)
public IType findType(String fullyQualifiedName, WorkingCopyOwner owner) throws JavaModelException
null
if none is found.
The fully qualified name is a dot-separated name. For example,
a class B defined as a member type of a class A in package x.y should have a
the fully qualified name "x.y.A.B".
If the returned type is part of a compilation unit, its owner is the given
owner.
Note that in order to be found, a type name (or its toplevel enclosing
type name) must match its corresponding compilation unit name. As a
consequence, secondary types cannot be found using this functionality.
Secondary types can however be explicitely accessed through their enclosing
unit or found by the SearchEngine
.
fullyQualifiedName
- the given fully qualified nameowner
- the owner of the returned type's compilation unit
null
if none is found
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourceIType.getFullyQualifiedName(char)
public IType findType(String packageName, String typeQualifiedName) throws JavaModelException
null
if none is found.
The package name is a dot-separated name.
The type qualified name is also a dot-separated name. For example,
a class B defined as a member type of a class A should have the
type qualified name "A.B".
Note that in order to be found, a type name (or its toplevel enclosing
type name) must match its corresponding compilation unit name. As a
consequence, secondary types cannot be found using this functionality.
Secondary types can however be explicitely accessed through their enclosing
unit or found by the SearchEngine
.
packageName
- the given package nametypeQualifiedName
- the given type qualified name
null
if none is found
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourceIType.getTypeQualifiedName(char)
public IType findType(String packageName, String typeQualifiedName, WorkingCopyOwner owner) throws JavaModelException
null
if none is found.
The package name is a dot-separated name.
The type qualified name is also a dot-separated name. For example,
a class B defined as a member type of a class A should have the
type qualified name "A.B".
If the returned type is part of a compilation unit, its owner is the given
owner.
Note that in order to be found, a type name (or its toplevel enclosing
type name) must match its corresponding compilation unit name. As a
consequence, secondary types cannot be found using this functionality.
Secondary types can however be explicitely accessed through their enclosing
unit or found by the SearchEngine
.
packageName
- the given package nametypeQualifiedName
- the given type qualified nameowner
- the owner of the returned type's compilation unit
null
if none is found
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourceIType.getTypeQualifiedName(char)
public IPackageFragmentRoot[] getAllPackageFragmentRoots() throws JavaModelException
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourcepublic Object[] getNonJavaResources() throws JavaModelException
Non-Java resources includes other files and folders located in the project not accounted for by any of it source or binary package fragment roots. If the project is a source folder itself, resources excluded from the corresponding source classpath entry by one or more exclusion patterns are considered non-Java resources and will appear in the result (possibly in a folder)
IFile
s and/or
IFolder
s) directly contained in this project
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourcepublic String getOption(String optionName, boolean inheritJavaCoreOptions)
(String)this.getOptions(inheritJavaCoreOptions).get(optionName)
Note that it may answer null
if this option does not exist, or if there is no custom value for it.
For a complete description of the configurable options, see JavaCore#getDefaultOptions
.
optionName
- the name of an optioninheritJavaCoreOptions
- - boolean indicating whether JavaCore options should be inherited as well
JavaCore.getDefaultOptions()
public Map getOptions(boolean inheritJavaCoreOptions)
JavaCore
.
For a complete description of the configurable options, see JavaCore#getDefaultOptions
.
inheritJavaCoreOptions
- - boolean indicating whether JavaCore options should be inherited as well
String
; value type: String
)JavaCore.getDefaultOptions()
public IPath getOutputLocation() throws JavaModelException
The default output location is where class files are ordinarily generated (and resource files, copied). Each source classpath entry can also specify an output location for the generated class files (and copied resource files) corresponding to compilation units under that source folder. This makes it possible to arrange generated class files for different source folders in different output folders, and not necessarily the default output folder. This means that the generated class files for the project may end up scattered across several folders, rather than all in the default output folder (which is more standard).
JavaModelException
- if this element does not existsetOutputLocation(org.eclipse.core.runtime.IPath, IProgressMonitor)
,
IClasspathEntry.getOutputLocation()
public IPackageFragmentRoot getPackageFragmentRoot(String jarPath)
java.io.File
may or may not exist. No resource is associated with this local JAR
package fragment root.
jarPath
- the jars's file system path
public IPackageFragmentRoot getPackageFragmentRoot(IResource resource)
.jar
or .zip
file.
This is a handle-only method. The underlying resource may or may not exist.
resource
- the given resource
.jar
or .zip
filepublic IPackageFragmentRoot[] getPackageFragmentRoots() throws JavaModelException
NOTE: This is equivalent to getChildren()
.
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourcepublic IPackageFragmentRoot[] getPackageFragmentRoots(IClasspathEntry entry)
If the classpath entry denotes a variable, it will be resolved and return the roots of the target entry (empty if not resolvable).
If the classpath entry denotes a container, it will be resolved and return the roots corresponding to the set of container entries (empty if not resolvable).
entry
- the given entry
IClasspathContainer
public IPackageFragment[] getPackageFragments() throws JavaModelException
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourcepublic IProject getProject()
IProject
on which this IJavaProject
was created. This is handle-only method.
IProject
on which this IJavaProject
was createdpublic IClasspathEntry[] getRawClasspath() throws JavaModelException
setRawClasspath
, in particular such a classpath may
contain classpath variable and classpath container entries. Classpath
variable and classpath container entries can be resolved using the
helper method getResolvedClasspath
; classpath variable
entries also can be resolved individually using
JavaCore#getClasspathVariable
).
Both classpath containers and classpath variables provides a level of
indirection that can make the .classpath
file stable across
workspaces.
As an example, classpath variables allow a classpath to no longer refer
directly to external JARs located in some user specific location.
The classpath can simply refer to some variables defining the proper
locations of these external JARs. Similarly, classpath containers
allows classpath entries to be computed dynamically by the plug-in that
defines that kind of classpath container.
Note that in case the project isn't yet opened, the classpath will be read directly from the associated .classpath file.
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourceIClasspathEntry
public String[] getRequiredProjectNames() throws JavaModelException
The project names are returned in the order they appear on the classpath.
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourcepublic IClasspathEntry[] getResolvedClasspath(boolean ignoreUnresolvedEntry) throws JavaModelException
The resulting resolved classpath is accurate for the given point in time. If the project's raw classpath is later modified, or if classpath variables are changed, the resolved classpath can become out of date. Because of this, hanging on resolved classpath is not recommended.
ignoreUnresolvedEntry
- indicates how to handle unresolvable
variables and containers; true
indicates that missing
variables and unresolvable classpath containers should be silently
ignored, and that the resulting list should consist only of the
entries that could be successfully resolved; false
indicates
that a JavaModelException
should be thrown for the first
unresolved variable or container
JavaModelException
- in one of the corresponding situation:
ignoreUnresolvedEntry
is false
.IClasspathEntry
public boolean hasBuildState()
public boolean hasClasspathCycle(IClasspathEntry[] entries)
entries
- the given classpath entries
public boolean isOnClasspath(IJavaElement element)
element
- the given element
true
if the given element is on the classpath of
this project, false
otherwiseIClasspathEntry.getInclusionPatterns()
,
IClasspathEntry.getExclusionPatterns()
public boolean isOnClasspath(IResource resource)
resource
- the given resource
true
if the given resource is on the classpath of
this project, false
otherwiseIClasspathEntry.getInclusionPatterns()
,
IClasspathEntry.getExclusionPatterns()
public IEvaluationContext newEvaluationContext()
public ITypeHierarchy newTypeHierarchy(IRegion region, IProgressMonitor monitor) throws JavaModelException
monitor
- the given progress monitorregion
- the given region
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resource
IllegalArgumentException
- if region is null
public ITypeHierarchy newTypeHierarchy(IRegion region, WorkingCopyOwner owner, IProgressMonitor monitor) throws JavaModelException
Note that if a working copy is empty, it will be as if the original compilation unit had been deleted.
monitor
- the given progress monitorregion
- the given regionowner
- the owner of working copies that take precedence over their original compilation units
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resource
IllegalArgumentException
- if region is null
public ITypeHierarchy newTypeHierarchy(IType type, IRegion region, IProgressMonitor monitor) throws JavaModelException
type
- the given typeregion
- the given regionmonitor
- the given monitor
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resource
IllegalArgumentException
- if type or region is null
public ITypeHierarchy newTypeHierarchy(IType type, IRegion region, WorkingCopyOwner owner, IProgressMonitor monitor) throws JavaModelException
Note that if a working copy is empty, it will be as if the original compilation unit had been deleted.
type
- the given typeregion
- the given regionmonitor
- the given monitorowner
- the owner of working copies that take precedence over their original compilation units
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resource
IllegalArgumentException
- if type or region is null
public IPath readOutputLocation()
.classpath
file from disk, or null
if unable to read the file.
This output location may differ from the in-memory one returned by getOutputLocation
, in case the
automatic reconciliation mechanism has not been performed yet. Usually, any change to the .classpath
file
is automatically noticed and reconciled at the next resource change notification event.
However, if the file is modified within an operation, where this change needs to be taken into account before the
operation ends, then the output location from disk can be read using this method, and further assigned to the project
using setRawClasspath(...)
.
The default output location is where class files are ordinarily generated (and resource files, copied). Each source classpath entry can also specify an output location for the generated class files (and copied resource files) corresponding to compilation units under that source folder. This makes it possible to arrange generated class files for different source folders in different output folders, and not necessarily the default output folder. This means that the generated class files for the project may end up scattered across several folders, rather than all in the default output folder (which is more standard).
In order to manually force a project classpath refresh, one can simply assign the project classpath using the result of this
method, as follows:
proj.setRawClasspath(proj.readRawClasspath(), proj.readOutputLocation(), monitor)
(note that the readRawClasspath/readOutputLocation
methods could return null
).
getOutputLocation()
public IClasspathEntry[] readRawClasspath()
.classpath
file from disk, or null
if unable to read the file.
This classpath may differ from the in-memory classpath returned by
getRawClasspath
, in case the automatic reconciliation
mechanism has not been performed yet. Usually, any change to the
.classpath
file is automatically noticed and reconciled at
the next resource change notification event. However, if the file is
modified within an operation, where this change needs to be taken into
account before the operation ends, then the classpath from disk can be
read using this method, and further assigned to the project using
setRawClasspath(...)
.
Classpath variable and classpath container entries can be resolved using
the helper method getResolvedClasspath
; classpath variable
entries also can be resolved individually using
JavaCore#getClasspathVariable
).
Note that no check is performed whether the project has the Java nature
set, allowing an existing .classpath
file to be considered
independantly (unlike getRawClasspath
which requires the
Java nature to be associated with the project).
In order to manually force a project classpath refresh, one can simply
assign the project classpath using the result of this method, as follows:
proj.setRawClasspath(proj.readRawClasspath(), proj.readOutputLocation(), monitor)
(note that the readRawClasspath/readOutputLocation
methods
could return null
).
getRawClasspath()
,
IClasspathEntry
public void setOption(String optionName, String optionValue)
Map options = this.getOptions(false); map.put(optionName, optionValue); this.setOptions(map)
For a complete description of the configurable options, see JavaCore#getDefaultOptions
.
optionName
- the name of an optionoptionValue
- the value of the option to setJavaCore.getDefaultOptions()
public void setOptions(Map newOptions)
For a complete description of the configurable options, see JavaCore#getDefaultOptions
.
newOptions
- the new options (key type: String
; value type: String
),
or null
to flush all custom options (clients will automatically get the global JavaCore options).JavaCore.getDefaultOptions()
public void setOutputLocation(IPath path, IProgressMonitor monitor) throws JavaModelException
The default output location is where class files are ordinarily generated (and resource files, copied). Each source classpath entries can also specify an output location for the generated class files (and copied resource files) corresponding to compilation units under that source folder. This makes it possible to arrange that generated class files for different source folders to end up in different output folders, and not necessarily the default output folder. This means that the generated class files for the project may end up scattered across several folders, rather than all in the default output folder (which is more standard).
path
- the workspace-relative absolute path of the default output
foldermonitor
- the progress monitor
JavaModelException
- if the classpath could not be set. Reasons include:
PATH_OUTSIDE_PROJECT
)
RELATIVE_PATH
)
INVALID_PATH
)
getOutputLocation()
,
IClasspathEntry.getOutputLocation()
public void setRawClasspath(IClasspathEntry[] entries, IProgressMonitor monitor) throws JavaModelException
JavaCore#getClasspathVariable
),
or the full classpath can be resolved at once using the helper method getResolvedClasspath
.
A classpath variable provides an indirection level for better sharing a classpath. As an example, it allows a classpath to no longer refer directly to external JARs located in some user specific location. The classpath can simply refer to some variables defining the proper locations of these external JARs.
Setting the classpath to null
specifies a default classpath
(the project root). Setting the classpath to an empty array specifies an
empty classpath.
If a cycle is detected while setting this classpath, an error marker will be added
to the project closing the cycle.
To avoid this problem, use hasClasspathCycle(IClasspathEntry[] entries)
before setting the classpath.
This operation acquires a lock on the workspace's root.
entries
- a list of classpath entriesmonitor
- the given progress monitor
JavaModelException
- if the classpath could not be set. Reasons include:
JavaConventions#validateClasspath
IClasspathEntry
public void setRawClasspath(IClasspathEntry[] entries, IPath outputLocation, IProgressMonitor monitor) throws JavaModelException
JavaCore#getClasspathVariable
), or the full classpath can be
resolved at once using the helper method
getResolvedClasspath
.
A classpath variable provides an indirection level for better sharing a classpath. As an example, it allows a classpath to no longer refer directly to external JARs located in some user specific location. The classpath can simply refer to some variables defining the proper locations of these external JARs.
Setting the classpath to null
specifies a default classpath
(the project root). Setting the classpath to an empty array specifies an
empty classpath.
If a cycle is detected while setting this classpath, an error marker will
be added to the project closing the cycle. To avoid this problem, use
hasClasspathCycle(IClasspathEntry[] entries)
before setting
the classpath.
This operation acquires a lock on the workspace's root.
entries
- a list of classpath entriesmonitor
- the progress monitoroutputLocation
- the default output location
JavaModelException
- if the classpath could not be set. Reasons
include:
CPE_PROJECT
refers to this project (INVALID_PATH)
PATH_OUTSIDE_PROJECT
)
RELATIVE_PATH
)
INVALID_PATH
)
IClasspathEntry
|
Eclipse JDT Release 3.0 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |