本文整理汇总了Java中javax.tools.StandardLocation.SYSTEM_MODULES属性的典型用法代码示例。如果您正苦于以下问题:Java StandardLocation.SYSTEM_MODULES属性的具体用法?Java StandardLocation.SYSTEM_MODULES怎么用?Java StandardLocation.SYSTEM_MODULES使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类javax.tools.StandardLocation
的用法示例。
在下文中一共展示了StandardLocation.SYSTEM_MODULES属性的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: listLocationsForModules
@Override
public Iterable<Set<Location>> listLocationsForModules(Location location) throws IOException {
if (location == StandardLocation.CLASS_OUTPUT) {
return Collections.emptySet();
} else if (location == StandardLocation.SYSTEM_MODULES) {
final ClassPath cp = JavaPlatform.getDefault().getBootstrapLibraries();
Collection<? extends URL> javaBase = findJavaBase(cp);
if (javaBase.isEmpty()) {
javaBase = fakeJavaBase(cp);
}
return Collections.singleton(Collections.singleton(new ModLoc(
StandardLocation.SYSTEM_MODULES,
"java.base", //NOI18N
javaBase)));
} else {
return Collections.emptySet();
}
}
示例2: findModule
private Location findModule(String moduleName) throws IOException {
Location[] locns = {
StandardLocation.UPGRADE_MODULE_PATH,
StandardLocation.SYSTEM_MODULES,
StandardLocation.MODULE_PATH
};
for (Location segment: locns) {
for (Set<Location> set: fileManager.listLocationsForModules(segment)) {
Location result = null;
for (Location l: set) {
String name = fileManager.inferModuleName(l);
if (name.equals(moduleName)) {
if (result == null)
result = l;
else
throw new IOException("multiple definitions found for " + moduleName);
}
}
if (result != null)
return result;
}
}
return null;
}
示例3: testSystemModules
@Test
public void testSystemModules(Path base) throws IOException {
try (StandardJavaFileManager fm = comp.getStandardFileManager(null, null, null)) {
Location locn = StandardLocation.SYSTEM_MODULES;
Location javaCompiler = fm.getLocationForModule(locn, "java.compiler");
// cannot easily verify default setting: could be jrt: or exploded image
Path override1 = Files.createDirectories(base.resolve("override1"));
fm.setLocationForModule(locn, "java.compiler", List.of(override1));
checkEqual("override setting 1",
fm.getLocationAsPaths(javaCompiler), override1);
Path override2 = Files.createDirectories(base.resolve("override2"));
fm.setLocationFromPaths(javaCompiler, List.of(override2));
checkEqual("override setting 2",
fm.getLocationAsPaths(javaCompiler), override2);
}
}
示例4: createSystemModuleFileManager
@NonNull
private JavaFileManager createSystemModuleFileManager() {
if (emitted[SYS_MODULES] == null) {
emitted[SYS_MODULES] = new ModuleFileManager(
cap,
moduleBoot,
peersMap.getOrDefault(moduleBoot, ROOT_TO_COLLECTION),
sourceLevel,
StandardLocation.SYSTEM_MODULES,
true);
}
return emitted[SYS_MODULES];
}
示例5: hasLocation
@Override
public boolean hasLocation(Location location) {
return location == StandardLocation.CLASS_OUTPUT ||
location == StandardLocation.SYSTEM_MODULES;
}
示例6: scanModulePath
private List<ModuleSymbol> scanModulePath(ModuleSymbol toFind) {
ListBuffer<ModuleSymbol> results = new ListBuffer<>();
Map<Name, Location> namesInSet = new HashMap<>();
boolean multiModuleMode = fileManager.hasLocation(StandardLocation.MODULE_SOURCE_PATH);
while (moduleLocationIterator.hasNext()) {
Set<Location> locns = (moduleLocationIterator.next());
namesInSet.clear();
for (Location l: locns) {
try {
Name n = names.fromString(fileManager.inferModuleName(l));
if (namesInSet.put(n, l) == null) {
ModuleSymbol msym = syms.enterModule(n);
if (msym.sourceLocation != null || msym.classLocation != null) {
// module has already been found, so ignore this instance
continue;
}
if (fileManager.hasLocation(StandardLocation.PATCH_MODULE_PATH) &&
msym.patchLocation == null) {
msym.patchLocation =
fileManager.getLocationForModule(StandardLocation.PATCH_MODULE_PATH,
msym.name.toString());
if (msym.patchLocation != null &&
multiModuleMode &&
fileManager.hasLocation(StandardLocation.CLASS_OUTPUT)) {
msym.patchOutputLocation =
fileManager.getLocationForModule(StandardLocation.CLASS_OUTPUT,
msym.name.toString());
}
}
if (moduleLocationIterator.outer == StandardLocation.MODULE_SOURCE_PATH) {
msym.sourceLocation = l;
if (fileManager.hasLocation(StandardLocation.CLASS_OUTPUT)) {
msym.classLocation =
fileManager.getLocationForModule(StandardLocation.CLASS_OUTPUT,
msym.name.toString());
}
} else {
msym.classLocation = l;
}
if (moduleLocationIterator.outer == StandardLocation.SYSTEM_MODULES ||
moduleLocationIterator.outer == StandardLocation.UPGRADE_MODULE_PATH) {
msym.flags_field |= Flags.SYSTEM_MODULE;
}
if (toFind == null ||
(toFind == msym && (msym.sourceLocation != null || msym.classLocation != null))) {
// Note: cannot return msym directly, because we must finish
// processing this set first
results.add(msym);
}
} else {
log.error(Errors.DuplicateModuleOnPath(
getDescription(moduleLocationIterator.outer), n));
}
} catch (IOException e) {
// skip location for now? log error?
}
}
if (toFind != null && results.nonEmpty())
return results.toList();
}
return results.toList();
}
示例7: SystemModulesLocationHandler
SystemModulesLocationHandler() {
super(StandardLocation.SYSTEM_MODULES, Option.SYSTEM);
systemJavaHome = Locations.javaHome;
}