Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
JDK 17 java.base.jmod - Base Module
JDK 17 java.base.jmod is the JMOD file for JDK 17 Base module.
JDK 17 Base module compiled class files are stored in \fyicenter\jdk-17.0.5\jmods\java.base.jmod.
JDK 17 Base module compiled class files are also linked and stored in the \fyicenter\jdk-17.0.5\lib\modules JImage file.
JDK 17 Base module source code files are stored in \fyicenter\jdk-17.0.5\lib\src.zip\java.base.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ jdk/internal/jrtfs/JrtFileSystemProvider.java
/* * Copyright (c) 2016, 2021, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package jdk.internal.jrtfs; import java.io.*; import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; import java.nio.channels.*; import java.nio.file.*; import java.nio.file.DirectoryStream.Filter; import java.nio.file.attribute.*; import java.nio.file.spi.FileSystemProvider; import java.net.URI; import java.security.AccessController; import java.security.PrivilegedAction; import java.util.HashMap; import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.concurrent.ExecutorService; /** * File system provider for jrt file systems. Conditionally creates jrt fs on * .jimage file or exploded modules directory of underlying JDK. * * @implNote This class needs to maintain JDK 8 source compatibility. * * It is used internally in the JDK to implement jimage/jrtfs access, * but also compiled and delivered as part of the jrtfs.jar to support access * to the jimage file provided by the shipped JDK by tools running on JDK 8. */ public final class JrtFileSystemProvider extends FileSystemProvider { private volatile FileSystem theFileSystem; public JrtFileSystemProvider() { } @Override public String getScheme() { return "jrt"; } /** * Need RuntimePermission "accessSystemModules" to create or get jrt:/ */ private void checkPermission() { @SuppressWarnings("removal") SecurityManager sm = System.getSecurityManager(); if (sm != null) { RuntimePermission perm = new RuntimePermission("accessSystemModules"); sm.checkPermission(perm); } } private void checkUri(URI uri) { if (!uri.getScheme().equalsIgnoreCase(getScheme())) { throw new IllegalArgumentException("URI does not match this provider"); } if (uri.getAuthority() != null) { throw new IllegalArgumentException("Authority component present"); } if (uri.getPath() == null) { throw new IllegalArgumentException("Path component is undefined"); } if (!uri.getPath().equals("/")) { throw new IllegalArgumentException("Path component should be '/'"); } if (uri.getQuery() != null) { throw new IllegalArgumentException("Query component present"); } if (uri.getFragment() != null) { throw new IllegalArgumentException("Fragment component present"); } } @Override public FileSystem newFileSystem(URI uri, Map<String, ?> env) throws IOException { Objects.requireNonNull(env); checkPermission(); checkUri(uri); if (env.containsKey("java.home")) { return newFileSystem((String)env.get("java.home"), uri, env); } else { return new JrtFileSystem(this, env); } } private static final String JRT_FS_JAR = "jrt-fs.jar"; private FileSystem newFileSystem(String targetHome, URI uri, Map<String, ?> env) throws IOException { Objects.requireNonNull(targetHome); Path jrtfs = FileSystems.getDefault().getPath(targetHome, "lib", JRT_FS_JAR); if (Files.notExists(jrtfs)) { throw new IOException(jrtfs.toString() + " not exist"); } Map<String,?> newEnv = new HashMap<>(env); newEnv.remove("java.home"); ClassLoader cl = newJrtFsLoader(jrtfs); try { Class<?> c = Class.forName(JrtFileSystemProvider.class.getName(), false, cl); @SuppressWarnings("deprecation") Object tmp = c.newInstance(); return ((FileSystemProvider)tmp).newFileSystem(uri, newEnv); } catch (ClassNotFoundException | IllegalAccessException | InstantiationException e) { throw new IOException(e); } } private static class JrtFsLoader extends URLClassLoader { JrtFsLoader(URL[] urls) { super(urls); } @Override protected Class<?> loadClass(String cn, boolean resolve) throws ClassNotFoundException { Class<?> c = findLoadedClass(cn); if (c == null) { URL u = findResource(cn.replace('.', '/') + ".class"); if (u != null) { c = findClass(cn); } else { return super.loadClass(cn, resolve); } } if (resolve) resolveClass(c); return c; } } @SuppressWarnings("removal") private static URLClassLoader newJrtFsLoader(Path jrtfs) { final URL url; try { url = jrtfs.toUri().toURL(); } catch (MalformedURLException mue) { throw new IllegalArgumentException(mue); } final URL[] urls = new URL[] { url }; return AccessController.doPrivileged( new PrivilegedAction<URLClassLoader>() { @Override public URLClassLoader run() { return new JrtFsLoader(urls); } } ); } @Override public Path getPath(URI uri) { checkPermission(); if (!uri.getScheme().equalsIgnoreCase(getScheme())) { throw new IllegalArgumentException("URI does not match this provider"); } if (uri.getAuthority() != null) { throw new IllegalArgumentException("Authority component present"); } if (uri.getQuery() != null) { throw new IllegalArgumentException("Query component present"); } if (uri.getFragment() != null) { throw new IllegalArgumentException("Fragment component present"); } String path = uri.getPath(); if (path == null || path.charAt(0) != '/' || path.contains("..")) { throw new IllegalArgumentException("Invalid path component"); } return getTheFileSystem().getPath("/modules" + path); } private FileSystem getTheFileSystem() { checkPermission(); FileSystem fs = this.theFileSystem; if (fs == null) { synchronized (this) { fs = this.theFileSystem; if (fs == null) { try { this.theFileSystem = fs = new JrtFileSystem(this, null); } catch (IOException ioe) { throw new InternalError(ioe); } } } } return fs; } @Override public FileSystem getFileSystem(URI uri) { checkPermission(); checkUri(uri); return getTheFileSystem(); } // Checks that the given file is a JrtPath static final JrtPath toJrtPath(Path path) { Objects.requireNonNull(path, "path"); if (!(path instanceof JrtPath)) { throw new ProviderMismatchException(); } return (JrtPath) path; } @Override public void checkAccess(Path path, AccessMode... modes) throws IOException { toJrtPath(path).checkAccess(modes); } @Override public Path readSymbolicLink(Path link) throws IOException { return toJrtPath(link).readSymbolicLink(); } @Override public void copy(Path src, Path target, CopyOption... options) throws IOException { toJrtPath(src).copy(toJrtPath(target), options); } @Override public void createDirectory(Path path, FileAttribute<?>... attrs) throws IOException { toJrtPath(path).createDirectory(attrs); } @Override public final void delete(Path path) throws IOException { toJrtPath(path).delete(); } @Override @SuppressWarnings("unchecked") public <V extends FileAttributeView> V getFileAttributeView(Path path, Class<V> type, LinkOption... options) { return JrtFileAttributeView.get(toJrtPath(path), type, options); } @Override public FileStore getFileStore(Path path) throws IOException { return toJrtPath(path).getFileStore(); } @Override public boolean isHidden(Path path) { return toJrtPath(path).isHidden(); } @Override public boolean isSameFile(Path path, Path other) throws IOException { return toJrtPath(path).isSameFile(other); } @Override public void move(Path src, Path target, CopyOption... options) throws IOException { toJrtPath(src).move(toJrtPath(target), options); } @Override public AsynchronousFileChannel newAsynchronousFileChannel(Path path, Set<? extends OpenOption> options, ExecutorService exec, FileAttribute<?>... attrs) throws IOException { throw new UnsupportedOperationException(); } @Override public SeekableByteChannel newByteChannel(Path path, Set<? extends OpenOption> options, FileAttribute<?>... attrs) throws IOException { return toJrtPath(path).newByteChannel(options, attrs); } @Override public DirectoryStream<Path> newDirectoryStream( Path path, Filter<? super Path> filter) throws IOException { return toJrtPath(path).newDirectoryStream(filter); } @Override public FileChannel newFileChannel(Path path, Set<? extends OpenOption> options, FileAttribute<?>... attrs) throws IOException { return toJrtPath(path).newFileChannel(options, attrs); } @Override public InputStream newInputStream(Path path, OpenOption... options) throws IOException { return toJrtPath(path).newInputStream(options); } @Override public OutputStream newOutputStream(Path path, OpenOption... options) throws IOException { return toJrtPath(path).newOutputStream(options); } @Override @SuppressWarnings("unchecked") // Cast to A public <A extends BasicFileAttributes> A readAttributes(Path path, Class<A> type, LinkOption... options) throws IOException { if (type == BasicFileAttributes.class || type == JrtFileAttributes.class) { return (A) toJrtPath(path).getAttributes(options); } return null; } @Override public Map<String, Object> readAttributes(Path path, String attribute, LinkOption... options) throws IOException { return toJrtPath(path).readAttributes(attribute, options); } @Override public void setAttribute(Path path, String attribute, Object value, LinkOption... options) throws IOException { toJrtPath(path).setAttribute(attribute, value, options); } }
⏎ jdk/internal/jrtfs/JrtFileSystemProvider.java
Or download all of them as a single archive file:
File name: java.base-17.0.5-src.zip File size: 8883851 bytes Release date: 2022-09-13 Download
2023-09-26, 68965👍, 1💬
Popular Posts:
What Is HttpComponents httpcore-4.4.6.jar? HttpComponents httpcore-4.4.6.jar is the JAR file for Apa...
JDK 11 jdk.jshell.jmod is the JMOD file for JDK 11 JShell tool, which can be invoked by the "jshell"...
JRE 8 deploy.jar is the JAR file for JRE 8 Java Control Panel and other deploy tools. JRE (Java Runt...
Apache Commons Lang 3 is the 3rd version of Apache Commons Lang, which provides a host of helper uti...
What Is jtds-1.2.2.jar? jtds-1.2.2.jar is the JAR files of jTDS Java library 1.2.2, which is a JDBC ...