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 11 java.base.jmod - Base Module
JDK 11 java.base.jmod is the JMOD file for JDK 11 Base module.
JDK 11 Base module compiled class files are stored in \fyicenter\jdk-11.0.1\jmods\java.base.jmod.
JDK 11 Base module compiled class files are also linked and stored in the \fyicenter\jdk-11.0.1\lib\modules JImage file.
JDK 11 Base module source code files are stored in \fyicenter\jdk-11.0.1\lib\src.zip\java.base.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ java/lang/invoke/ProxyClassesDumper.java
/* * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package java.lang.invoke; import sun.util.logging.PlatformLogger; import java.io.FilePermission; import java.nio.file.Files; import java.nio.file.InvalidPathException; import java.nio.file.Path; import java.security.AccessController; import java.security.PrivilegedAction; import java.util.Objects; import java.util.concurrent.atomic.AtomicBoolean; /** * Helper class used by InnerClassLambdaMetafactory to log generated classes * * @implNote * <p> Because this class is called by LambdaMetafactory, make use * of lambda lead to recursive calls cause stack overflow. */ final class ProxyClassesDumper { private static final char[] HEX = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; private static final char[] BAD_CHARS = { '\\', ':', '*', '?', '"', '<', '>', '|' }; private static final String[] REPLACEMENT = { "%5C", "%3A", "%2A", "%3F", "%22", "%3C", "%3E", "%7C" }; private final Path dumpDir; public static ProxyClassesDumper getInstance(String path) { if (null == path) { return null; } try { path = path.trim(); final Path dir = Path.of(path.length() == 0 ? "." : path); AccessController.doPrivileged(new PrivilegedAction<>() { @Override public Void run() { validateDumpDir(dir); return null; } }, null, new FilePermission("<<ALL FILES>>", "read, write")); return new ProxyClassesDumper(dir); } catch (InvalidPathException ex) { PlatformLogger.getLogger(ProxyClassesDumper.class.getName()) .warning("Path " + path + " is not valid - dumping disabled", ex); } catch (IllegalArgumentException iae) { PlatformLogger.getLogger(ProxyClassesDumper.class.getName()) .warning(iae.getMessage() + " - dumping disabled"); } return null; } private ProxyClassesDumper(Path path) { dumpDir = Objects.requireNonNull(path); } private static void validateDumpDir(Path path) { if (!Files.exists(path)) { throw new IllegalArgumentException("Directory " + path + " does not exist"); } else if (!Files.isDirectory(path)) { throw new IllegalArgumentException("Path " + path + " is not a directory"); } else if (!Files.isWritable(path)) { throw new IllegalArgumentException("Directory " + path + " is not writable"); } } public static String encodeForFilename(String className) { final int len = className.length(); StringBuilder sb = new StringBuilder(len); for (int i = 0; i < len; i++) { char c = className.charAt(i); // control characters if (c <= 31) { sb.append('%'); sb.append(HEX[c >> 4 & 0x0F]); sb.append(HEX[c & 0x0F]); } else { int j = 0; for (; j < BAD_CHARS.length; j++) { if (c == BAD_CHARS[j]) { sb.append(REPLACEMENT[j]); break; } } if (j >= BAD_CHARS.length) { sb.append(c); } } } return sb.toString(); } public void dumpClass(String className, final byte[] classBytes) { Path file; try { file = dumpDir.resolve(encodeForFilename(className) + ".class"); } catch (InvalidPathException ex) { PlatformLogger.getLogger(ProxyClassesDumper.class.getName()) .warning("Invalid path for class " + className); return; } try { Path dir = file.getParent(); Files.createDirectories(dir); Files.write(file, classBytes); } catch (Exception ignore) { PlatformLogger.getLogger(ProxyClassesDumper.class.getName()) .warning("Exception writing to path at " + file.toString()); // simply don't care if this operation failed } } }
⏎ java/lang/invoke/ProxyClassesDumper.java
Or download all of them as a single archive file:
File name: java.base-11.0.1-src.zip File size: 8740354 bytes Release date: 2018-11-04 Download
2020-05-29, 256891👍, 0💬
Popular Posts:
JDK 17 jdk.compiler.jmod is the JMOD file for JDK 17 Compiler tool, which can be invoked by the "jav...
JRE 5 sunjce_provider.jar is the JAR file for JRE 5 Sun JCE Provider, which provides implementations...
How to download and install mysql-connector-j-8.0.31 .zip?Connector/J Java library is a JDBC Driver ...
How to download and install iText7-Core-7.1.4.zip? iText7-Core-7.1.4.zip is the binary package of iT...
What Is mail.jar of JavaMail 1.4.2? I got the JAR file from javamail-1.4.2.zip. mail.jar in javamail...