mirror of
https://github.com/noviceli/jetbra
synced 2024-12-25 04:43:46 +03:00
init
This commit is contained in:
commit
e060f1c114
29 changed files with 740 additions and 0 deletions
63
jetbra-agent/pom.xml
Normal file
63
jetbra-agent/pom.xml
Normal file
|
@ -0,0 +1,63 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>win.novice</groupId>
|
||||
<artifactId>jetbra</artifactId>
|
||||
<version>0.0.1</version>
|
||||
</parent>
|
||||
|
||||
<groupId>win.novice.li</groupId>
|
||||
<artifactId>jetbra-agent</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>net.bytebuddy</groupId>
|
||||
<artifactId>byte-buddy</artifactId>
|
||||
<version>1.14.8</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>net.bytebuddy</groupId>
|
||||
<artifactId>byte-buddy-agent</artifactId>
|
||||
<version>1.14.8</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<configuration>
|
||||
<appendAssemblyId>false</appendAssemblyId>
|
||||
<descriptorRefs>
|
||||
<descriptorRef>jar-with-dependencies</descriptorRef>
|
||||
</descriptorRefs>
|
||||
<archive>
|
||||
<manifestEntries>
|
||||
<Premain-Class>win.novice.li.AgentMain</Premain-Class>
|
||||
<Can-Redefine-Classes>true</Can-Redefine-Classes>
|
||||
<Can-Retransform-Classes>true</Can-Retransform-Classes>
|
||||
</manifestEntries>
|
||||
</archive>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>make-assembly</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>single</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
50
jetbra-agent/src/main/java/win/novice/li/AgentMain.java
Normal file
50
jetbra-agent/src/main/java/win/novice/li/AgentMain.java
Normal file
|
@ -0,0 +1,50 @@
|
|||
package win.novice.li;
|
||||
|
||||
import net.bytebuddy.agent.builder.AgentBuilder;
|
||||
import net.bytebuddy.asm.Advice;
|
||||
import net.bytebuddy.matcher.ElementMatchers;
|
||||
|
||||
import java.lang.instrument.Instrumentation;
|
||||
import java.util.Set;
|
||||
|
||||
public class AgentMain {
|
||||
public static void premain(String agentArgs, Instrumentation inst) throws Exception {
|
||||
printLogo();
|
||||
AgentBuilder agentBuilder = newAgentBuilder();
|
||||
agentBuilder.type(ElementMatchers.named("java.security.cert.PKIXBuilderParameters"))
|
||||
.transform((builder, typeDescription, classLoader, module, protectionDomain) -> builder
|
||||
.visit(Advice.to(PKIXBuilderParameters.class)
|
||||
.on(ElementMatchers.isConstructor().and(ElementMatchers.takesArgument(0, Set.class)))))
|
||||
.asTerminalTransformation()
|
||||
.type(ElementMatchers.named("sun.net.www.http.HttpClient"))
|
||||
.transform((builder, typeDescription, classLoader, module, protectionDomain) -> builder
|
||||
.visit(Advice.to(HttpClientAdvice.class)
|
||||
.on(ElementMatchers.named("openServer"))))
|
||||
.asTerminalTransformation()
|
||||
.type(ElementMatchers.named("java.lang.System"))
|
||||
.transform((builder, typeDescription, classLoader, module, protectionDomain) -> builder
|
||||
.visit(Advice.to(SystemAdvice.class)
|
||||
.on(ElementMatchers.named("getProperty"))))
|
||||
.asTerminalTransformation()
|
||||
.installOn(inst);
|
||||
|
||||
agentBuilder.installOn(inst);
|
||||
}
|
||||
|
||||
static AgentBuilder newAgentBuilder() {
|
||||
return new AgentBuilder.Default()
|
||||
.with(AgentBuilder.RedefinitionStrategy.RETRANSFORMATION)
|
||||
.with(AgentBuilder.InitializationStrategy.NoOp.INSTANCE)
|
||||
.with(AgentBuilder.TypeStrategy.Default.REDEFINE)
|
||||
.ignore(ElementMatchers.nameStartsWith("net.bytebuddy."));
|
||||
}
|
||||
|
||||
|
||||
static void printLogo() {
|
||||
System.out.println(" _ _ _ \n" +
|
||||
" | | ___| |_| |__ _ __ __ _ \n" +
|
||||
" _ | |/ _ \\ __| '_ \\| '__/ _` |\n" +
|
||||
"| |_| | __/ |_| |_) | | | (_| |\n" +
|
||||
" \\___/ \\___|\\__|_.__/|_| \\__,_|");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
package win.novice.li;
|
||||
|
||||
import net.bytebuddy.asm.Advice;
|
||||
|
||||
import java.net.SocketTimeoutException;
|
||||
|
||||
public class HttpClientAdvice {
|
||||
@Advice.OnMethodExit
|
||||
public static void intercept(@Advice.This Object x) throws Exception {
|
||||
if (x.toString().contains("validateKey.action")){
|
||||
throw new SocketTimeoutException();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
package win.novice.li;
|
||||
|
||||
import net.bytebuddy.asm.Advice;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.security.cert.TrustAnchor;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public class PKIXBuilderParameters {
|
||||
|
||||
|
||||
@Advice.OnMethodEnter
|
||||
@SuppressWarnings("unchecked")
|
||||
public static void intercept(@Advice.Argument(value = 0, readOnly = false) Set<TrustAnchor> trustAnchors) throws Exception {
|
||||
Class<?> clazz = Class.forName("win.novice.li.TrustAnchorHolder", true, ClassLoader.getSystemClassLoader());
|
||||
Method method = clazz.getDeclaredMethod("loadTrustAnchors");
|
||||
Set<TrustAnchor> loadedTrustAnchors = (Set<TrustAnchor>)method.invoke(null);
|
||||
HashSet<TrustAnchor> newTrustAnchors = new HashSet<>(trustAnchors);
|
||||
newTrustAnchors.addAll(loadedTrustAnchors);
|
||||
trustAnchors = newTrustAnchors;
|
||||
}
|
||||
}
|
29
jetbra-agent/src/main/java/win/novice/li/SystemAdvice.java
Normal file
29
jetbra-agent/src/main/java/win/novice/li/SystemAdvice.java
Normal file
|
@ -0,0 +1,29 @@
|
|||
package win.novice.li;
|
||||
|
||||
import net.bytebuddy.asm.Advice;
|
||||
|
||||
public class SystemAdvice {
|
||||
|
||||
|
||||
// System.getProperty
|
||||
@Advice.OnMethodExit
|
||||
public static void intercept(@Advice.Argument(0) Object x, @Advice.Return(readOnly = false) String r) throws Exception {
|
||||
if (x.toString().equals("jb.vmOptionsFile")) {
|
||||
RuntimeException exception = new RuntimeException();
|
||||
int nullCnt = 0;
|
||||
boolean hasReflect = false;
|
||||
for (StackTraceElement element : exception.getStackTrace()) {
|
||||
if (element.getFileName() == null) {
|
||||
nullCnt += 1;
|
||||
continue;
|
||||
}
|
||||
if (element.getFileName().equals("Method.java")) {
|
||||
hasReflect = true;
|
||||
}
|
||||
}
|
||||
if (nullCnt >= 3 && hasReflect) {
|
||||
r = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
package win.novice.li;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.net.URI;
|
||||
import java.net.URL;
|
||||
import java.nio.file.Paths;
|
||||
import java.security.cert.CertificateFactory;
|
||||
import java.security.cert.TrustAnchor;
|
||||
import java.security.cert.X509Certificate;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public class TrustAnchorHolder {
|
||||
public static Set<TrustAnchor> TRUST_ANCHORS;
|
||||
|
||||
|
||||
public static Set<TrustAnchor> loadTrustAnchors() throws Exception {
|
||||
if (TRUST_ANCHORS != null) {
|
||||
return TRUST_ANCHORS;
|
||||
}
|
||||
TRUST_ANCHORS = new HashSet<>();
|
||||
|
||||
String certDir;
|
||||
if (System.getenv("JB_HOME") != null) {
|
||||
certDir = System.getenv("JB_HOME");
|
||||
} else {
|
||||
URI jarURI = getJarURI();
|
||||
if (jarURI == null) {
|
||||
return TRUST_ANCHORS;
|
||||
}
|
||||
certDir = Paths.get(jarURI).getParent().resolve("trust-crt").toString();
|
||||
}
|
||||
System.out.println("load crt from " + certDir);
|
||||
File dir = new File(certDir);
|
||||
if (dir.exists() && dir.isDirectory()) {
|
||||
File[] files = dir.listFiles();
|
||||
if (files != null) {
|
||||
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
|
||||
for (File item : files) {
|
||||
if (item.getName().endsWith(".crt")) {
|
||||
X509Certificate cert = (X509Certificate) certificateFactory.generateCertificate(new FileInputStream(item));
|
||||
TRUST_ANCHORS.add(new TrustAnchor(cert, null));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
System.out.println("loaded " + TRUST_ANCHORS.size() + " crts");
|
||||
return TRUST_ANCHORS;
|
||||
}
|
||||
|
||||
public static URI getJarURI() throws Exception {
|
||||
URL url = TrustAnchorHolder.class.getProtectionDomain().getCodeSource().getLocation();
|
||||
if (null != url) {
|
||||
return url.toURI();
|
||||
}
|
||||
String resourcePath = "/jarLocation.txt";
|
||||
url = TrustAnchorHolder.class.getResource(resourcePath);
|
||||
if (null == url) {
|
||||
return null;
|
||||
}
|
||||
String path = url.getPath();
|
||||
path = path.substring(0, path.length() - resourcePath.length() - 1);
|
||||
return new URI(path);
|
||||
}
|
||||
}
|
0
jetbra-agent/src/main/resources/jarLocation.txt
Normal file
0
jetbra-agent/src/main/resources/jarLocation.txt
Normal file
43
jetbra-server/pom.xml
Normal file
43
jetbra-server/pom.xml
Normal file
|
@ -0,0 +1,43 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>win.novice</groupId>
|
||||
<artifactId>jetbra</artifactId>
|
||||
<version>0.0.1</version>
|
||||
</parent>
|
||||
|
||||
<groupId>win.novice.li</groupId>
|
||||
<artifactId>jetbra-server</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
|
@ -0,0 +1,15 @@
|
|||
package win.novice.li;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
import java.security.InvalidAlgorithmParameterException;
|
||||
import java.security.cert.PKIXBuilderParameters;
|
||||
import java.util.HashSet;
|
||||
|
||||
@SpringBootApplication
|
||||
public class JetbraServerApplication {
|
||||
public static void main(String[] args) throws InvalidAlgorithmParameterException {
|
||||
SpringApplication.run(JetbraServerApplication.class,args);
|
||||
}
|
||||
}
|
25
pom.xml
Normal file
25
pom.xml
Normal file
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>3.2.0</version>
|
||||
<relativePath/>
|
||||
</parent>
|
||||
<groupId>win.novice</groupId>
|
||||
<artifactId>jetbra</artifactId>
|
||||
<version>0.0.1</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>jetbra</name>
|
||||
<description>jetbra</description>
|
||||
<modules>
|
||||
<module>jetbra-agent</module>
|
||||
<module>jetbra-server</module>
|
||||
</modules>
|
||||
<properties>
|
||||
<java.version>17</java.version>
|
||||
</properties>
|
||||
|
||||
</project>
|
25
trust-crt/janetfilter.crt
Normal file
25
trust-crt/janetfilter.crt
Normal file
|
@ -0,0 +1,25 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQ
|
||||
cm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsG
|
||||
A1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IB
|
||||
DwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYU
|
||||
IXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIs
|
||||
H668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9e
|
||||
A6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/
|
||||
Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0x
|
||||
sK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIw
|
||||
ADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562
|
||||
SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GC
|
||||
CQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJ
|
||||
KoZIhvcNAQELBQADggIBABKaDfYJk51mtYwUFK8xqhiZaYPd30TlmCmSAaGJ0eBp
|
||||
vkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6R
|
||||
lJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddp
|
||||
ctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozd
|
||||
B/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1v
|
||||
sdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq
|
||||
+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISX
|
||||
mz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeI
|
||||
Q/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc
|
||||
2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl
|
||||
1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD
|
||||
-----END CERTIFICATE-----
|
28
trust-crt/jetbra.crt
Normal file
28
trust-crt/jetbra.crt
Normal file
|
@ -0,0 +1,28 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIEtTCCAp2gAwIBAgIUDyuccmylba71lZQAQic5TJiAhwwwDQYJKoZIhvcNAQEL
|
||||
BQAwGDEWMBQGA1UEAwwNSmV0UHJvZmlsZSBDQTAeFw0yMzA5MjkxNDA2MTJaFw0z
|
||||
MzA5MjcxNDA2MTJaMBExDzANBgNVBAMMBk5vdmljZTCCAiIwDQYJKoZIhvcNAQEB
|
||||
BQADggIPADCCAgoCggIBALenqcGP2ZxGkYqmKA9c4Hzf8+YD1smvmOxKjd+bmTLr
|
||||
utM/hXv1cj1rW3/lqyDtdDk7K6W8/TDq1CRrEt+Do6l30DxhAiC34aH8DmGwgq77
|
||||
xEoLimvH5LpePxflF+tbB1RZtFgFDOIYLdSQaKFH2JDgVKxhLiV3S6jniPhkCtWW
|
||||
rTs+E6vq4N15Bm3NnM5AJILqjtUbOjNfaxVq6RrOoTc0R3Fqqo6yvxo/+JYa2UnH
|
||||
IC+r2dbKuDLMUrtgnydEUdJNX0zH9FtcdELvr48uc9mY038TWUsZUK1pnQbxA2bP
|
||||
yA4qnYJ9IvUgO6LtLXvGFm137YQMS1N41AHDBOrwoNI8UoDX+qI3rM96biFOFvn7
|
||||
Edky7rByzybt3H+zxdojfjvpL1E0NO98BT9zfufHAaAxZtlmDOu5LDJe3CGurnyR
|
||||
MRExbtc+Qjl1mUh6tG4lakAwdsoxry0GdG72yaYyb9it53kaFks/T/s7Z7bRJzVF
|
||||
zQDV1Y4bzUtk43vKm2vztBVlQkBkZY5f2Jbe5Ig3b8swQzBnOT0mrL5SPUhwmQ6I
|
||||
xkEWztj55OEujBMmRr92oESuq9ZYMaeLidKWVR3/++HA8BRZaRGEKtSHZCbFEFdi
|
||||
hDxxJv9Xh6NuT/ewJ6HYp+0NQpFnUnJ72n8wV+tudpam7aKcdzVmz7cNwOhG2Ls7
|
||||
AgMBAAEwDQYJKoZIhvcNAQELBQADggIBAIdeaQfKni7tXtcywC3zJvGzaaj242pS
|
||||
WB1y40HW8jub0uHjTLsBPX27iA/5rb+rNXtUWX/f2K+DU4IgaIiiHhkDrMsw7piv
|
||||
azqwA9h7/uA0A5nepmTYf/HY4W6P2stbeqInNsFRZXS7Jg4Q5LgEtHKo/H8USjtV
|
||||
w9apmE3BCElkXRuelXMsSllpR/JEVv/8NPLmnHSY02q4KMVW2ozXtaAxSYQmZswy
|
||||
P1YnBcnRukoI4igobpcKQXwGoQCIUlec8LbFXYM9V2eNCwgABqd4r67m7QJq31Y/
|
||||
1TJysQdMH+hoPFy9rqNCxSq3ptpuzcYAk6qVf58PrrYH/6bHwiYPAayvvdzNPOhM
|
||||
9OCwomfcazhK3y7HyS8aBLntTQYFf7vYzZxPMDybYTvJM+ClCNnVD7Q9fttIJ6eM
|
||||
XFsXb8YK1uGNjQW8Y4WHk1MCHuD9ZumWu/CtAhBn6tllTQWwNMaPOQvKf1kr1Kt5
|
||||
etrONY+B6O+Oi75SZbDuGz7PIF9nMPy4WB/8XgKdVFtKJ7/zLIPHgY8IKgbx/VTz
|
||||
6uBhYo8wOf3xzzweMnn06UcfV3JGNvtMuV4vlkZNNxXeifsgzHugCvJX0nybhfBh
|
||||
fIqVyfK6t0eKJqrvp54XFEtJGR+lf3pBfTdcOI6QFEPKGZKoQz8Ck+BC/WBDtbjc
|
||||
/uYKczZ8DKZu
|
||||
-----END CERTIFICATE-----
|
21
vmoptions/appcode.vmoptions
Normal file
21
vmoptions/appcode.vmoptions
Normal file
|
@ -0,0 +1,21 @@
|
|||
-Xms128m
|
||||
-Xmx1024m
|
||||
-XX:ReservedCodeCacheSize=512m
|
||||
-XX:+IgnoreUnrecognizedVMOptions
|
||||
-XX:+UseG1GC
|
||||
-XX:SoftRefLRUPolicyMSPerMB=50
|
||||
-XX:CICompilerCount=2
|
||||
-XX:+HeapDumpOnOutOfMemoryError
|
||||
-XX:-OmitStackTraceInFastThrow
|
||||
-ea
|
||||
-Dsun.io.useCanonCaches=false
|
||||
-Djdk.http.auth.tunneling.disabledSchemes=""
|
||||
-Djdk.attach.allowAttachSelf=true
|
||||
-Djdk.module.illegalAccess.silent=true
|
||||
-Dkotlinx.coroutines.debug=off
|
||||
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
|
||||
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
|
||||
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
|
||||
|
21
vmoptions/clion.vmoptions
Normal file
21
vmoptions/clion.vmoptions
Normal file
|
@ -0,0 +1,21 @@
|
|||
-Xms128m
|
||||
-Xmx3992m
|
||||
-XX:ReservedCodeCacheSize=512m
|
||||
-XX:+IgnoreUnrecognizedVMOptions
|
||||
-XX:+UseG1GC
|
||||
-XX:SoftRefLRUPolicyMSPerMB=50
|
||||
-XX:CICompilerCount=2
|
||||
-XX:+HeapDumpOnOutOfMemoryError
|
||||
-XX:-OmitStackTraceInFastThrow
|
||||
-ea
|
||||
-Dsun.io.useCanonCaches=false
|
||||
-Djdk.http.auth.tunneling.disabledSchemes=""
|
||||
-Djdk.attach.allowAttachSelf=true
|
||||
-Djdk.module.illegalAccess.silent=true
|
||||
-Dkotlinx.coroutines.debug=off
|
||||
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
|
||||
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
|
||||
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
|
||||
|
22
vmoptions/datagrip.vmoptions
Normal file
22
vmoptions/datagrip.vmoptions
Normal file
|
@ -0,0 +1,22 @@
|
|||
-Xms128m
|
||||
-Xmx1024m
|
||||
-XX:ReservedCodeCacheSize=512m
|
||||
-XX:+IgnoreUnrecognizedVMOptions
|
||||
-XX:+UseG1GC
|
||||
-XX:SoftRefLRUPolicyMSPerMB=50
|
||||
-XX:CICompilerCount=2
|
||||
-XX:+HeapDumpOnOutOfMemoryError
|
||||
-XX:-OmitStackTraceInFastThrow
|
||||
-ea
|
||||
-Dsun.io.useCanonCaches=false
|
||||
-Djdk.http.auth.tunneling.disabledSchemes=""
|
||||
-Djdk.attach.allowAttachSelf=true
|
||||
-Djdk.module.illegalAccess.silent=true
|
||||
-Dkotlinx.coroutines.debug=off
|
||||
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
|
||||
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
|
||||
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
|
||||
|
||||
|
21
vmoptions/dataspell.vmoptions
Normal file
21
vmoptions/dataspell.vmoptions
Normal file
|
@ -0,0 +1,21 @@
|
|||
-Xms128m
|
||||
-Xmx1024m
|
||||
-XX:ReservedCodeCacheSize=512m
|
||||
-XX:+IgnoreUnrecognizedVMOptions
|
||||
-XX:+UseG1GC
|
||||
-XX:SoftRefLRUPolicyMSPerMB=50
|
||||
-XX:CICompilerCount=2
|
||||
-XX:+HeapDumpOnOutOfMemoryError
|
||||
-XX:-OmitStackTraceInFastThrow
|
||||
-ea
|
||||
-Dsun.io.useCanonCaches=false
|
||||
-Djdk.http.auth.tunneling.disabledSchemes=""
|
||||
-Djdk.attach.allowAttachSelf=true
|
||||
-Djdk.module.illegalAccess.silent=true
|
||||
-Dkotlinx.coroutines.debug=off
|
||||
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
|
||||
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
|
||||
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
|
||||
|
21
vmoptions/devecostudio.vmoptions
Normal file
21
vmoptions/devecostudio.vmoptions
Normal file
|
@ -0,0 +1,21 @@
|
|||
-Xms128m
|
||||
-Xmx1024m
|
||||
-XX:ReservedCodeCacheSize=512m
|
||||
-XX:+IgnoreUnrecognizedVMOptions
|
||||
-XX:+UseG1GC
|
||||
-XX:SoftRefLRUPolicyMSPerMB=50
|
||||
-XX:CICompilerCount=2
|
||||
-XX:+HeapDumpOnOutOfMemoryError
|
||||
-XX:-OmitStackTraceInFastThrow
|
||||
-ea
|
||||
-Dsun.io.useCanonCaches=false
|
||||
-Djdk.http.auth.tunneling.disabledSchemes=""
|
||||
-Djdk.attach.allowAttachSelf=true
|
||||
-Djdk.module.illegalAccess.silent=true
|
||||
-Dkotlinx.coroutines.debug=off
|
||||
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
|
||||
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
|
||||
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
|
||||
|
21
vmoptions/gateway.vmoptions
Normal file
21
vmoptions/gateway.vmoptions
Normal file
|
@ -0,0 +1,21 @@
|
|||
-Xms128m
|
||||
-Xmx1024m
|
||||
-XX:ReservedCodeCacheSize=512m
|
||||
-XX:+IgnoreUnrecognizedVMOptions
|
||||
-XX:+UseG1GC
|
||||
-XX:SoftRefLRUPolicyMSPerMB=50
|
||||
-XX:CICompilerCount=2
|
||||
-XX:+HeapDumpOnOutOfMemoryError
|
||||
-XX:-OmitStackTraceInFastThrow
|
||||
-ea
|
||||
-Dsun.io.useCanonCaches=false
|
||||
-Djdk.http.auth.tunneling.disabledSchemes=""
|
||||
-Djdk.attach.allowAttachSelf=true
|
||||
-Djdk.module.illegalAccess.silent=true
|
||||
-Dkotlinx.coroutines.debug=off
|
||||
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
|
||||
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
|
||||
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
|
||||
|
21
vmoptions/goland.vmoptions
Normal file
21
vmoptions/goland.vmoptions
Normal file
|
@ -0,0 +1,21 @@
|
|||
-Xms128m
|
||||
-Xmx1024m
|
||||
-XX:ReservedCodeCacheSize=512m
|
||||
-XX:+IgnoreUnrecognizedVMOptions
|
||||
-XX:+UseG1GC
|
||||
-XX:SoftRefLRUPolicyMSPerMB=50
|
||||
-XX:CICompilerCount=2
|
||||
-XX:+HeapDumpOnOutOfMemoryError
|
||||
-XX:-OmitStackTraceInFastThrow
|
||||
-ea
|
||||
-Dsun.io.useCanonCaches=false
|
||||
-Djdk.http.auth.tunneling.disabledSchemes=""
|
||||
-Djdk.attach.allowAttachSelf=true
|
||||
-Djdk.module.illegalAccess.silent=true
|
||||
-Dkotlinx.coroutines.debug=off
|
||||
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
|
||||
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
|
||||
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
|
||||
|
21
vmoptions/idea.vmoptions
Normal file
21
vmoptions/idea.vmoptions
Normal file
|
@ -0,0 +1,21 @@
|
|||
-Xms128m
|
||||
-Xmx3992m
|
||||
-XX:ReservedCodeCacheSize=512m
|
||||
-XX:+IgnoreUnrecognizedVMOptions
|
||||
-XX:+UseG1GC
|
||||
-XX:SoftRefLRUPolicyMSPerMB=50
|
||||
-XX:CICompilerCount=2
|
||||
-XX:+HeapDumpOnOutOfMemoryError
|
||||
-XX:-OmitStackTraceInFastThrow
|
||||
-ea
|
||||
-Dsun.io.useCanonCaches=false
|
||||
-Djdk.http.auth.tunneling.disabledSchemes=""
|
||||
-Djdk.attach.allowAttachSelf=true
|
||||
-Djdk.module.illegalAccess.silent=true
|
||||
-Dkotlinx.coroutines.debug=off
|
||||
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
|
||||
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
|
||||
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
|
||||
|
21
vmoptions/jetbrains_client.vmoptions
Normal file
21
vmoptions/jetbrains_client.vmoptions
Normal file
|
@ -0,0 +1,21 @@
|
|||
-Xms128m
|
||||
-Xmx1024m
|
||||
-XX:ReservedCodeCacheSize=512m
|
||||
-XX:+IgnoreUnrecognizedVMOptions
|
||||
-XX:+UseG1GC
|
||||
-XX:SoftRefLRUPolicyMSPerMB=50
|
||||
-XX:CICompilerCount=2
|
||||
-XX:+HeapDumpOnOutOfMemoryError
|
||||
-XX:-OmitStackTraceInFastThrow
|
||||
-ea
|
||||
-Dsun.io.useCanonCaches=false
|
||||
-Djdk.http.auth.tunneling.disabledSchemes=""
|
||||
-Djdk.attach.allowAttachSelf=true
|
||||
-Djdk.module.illegalAccess.silent=true
|
||||
-Dkotlinx.coroutines.debug=off
|
||||
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
|
||||
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
|
||||
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
|
||||
|
21
vmoptions/jetbrainsclient.vmoptions
Normal file
21
vmoptions/jetbrainsclient.vmoptions
Normal file
|
@ -0,0 +1,21 @@
|
|||
-Xms128m
|
||||
-Xmx1024m
|
||||
-XX:ReservedCodeCacheSize=512m
|
||||
-XX:+IgnoreUnrecognizedVMOptions
|
||||
-XX:+UseG1GC
|
||||
-XX:SoftRefLRUPolicyMSPerMB=50
|
||||
-XX:CICompilerCount=2
|
||||
-XX:+HeapDumpOnOutOfMemoryError
|
||||
-XX:-OmitStackTraceInFastThrow
|
||||
-ea
|
||||
-Dsun.io.useCanonCaches=false
|
||||
-Djdk.http.auth.tunneling.disabledSchemes=""
|
||||
-Djdk.attach.allowAttachSelf=true
|
||||
-Djdk.module.illegalAccess.silent=true
|
||||
-Dkotlinx.coroutines.debug=off
|
||||
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
|
||||
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
|
||||
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
|
||||
|
21
vmoptions/phpstorm.vmoptions
Normal file
21
vmoptions/phpstorm.vmoptions
Normal file
|
@ -0,0 +1,21 @@
|
|||
-Xms128m
|
||||
-Xmx1024m
|
||||
-XX:ReservedCodeCacheSize=512m
|
||||
-XX:+IgnoreUnrecognizedVMOptions
|
||||
-XX:+UseG1GC
|
||||
-XX:SoftRefLRUPolicyMSPerMB=50
|
||||
-XX:CICompilerCount=2
|
||||
-XX:+HeapDumpOnOutOfMemoryError
|
||||
-XX:-OmitStackTraceInFastThrow
|
||||
-ea
|
||||
-Dsun.io.useCanonCaches=false
|
||||
-Djdk.http.auth.tunneling.disabledSchemes=""
|
||||
-Djdk.attach.allowAttachSelf=true
|
||||
-Djdk.module.illegalAccess.silent=true
|
||||
-Dkotlinx.coroutines.debug=off
|
||||
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
|
||||
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
|
||||
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
|
||||
|
21
vmoptions/pycharm.vmoptions
Normal file
21
vmoptions/pycharm.vmoptions
Normal file
|
@ -0,0 +1,21 @@
|
|||
-Xms128m
|
||||
-Xmx1024m
|
||||
-XX:ReservedCodeCacheSize=512m
|
||||
-XX:+IgnoreUnrecognizedVMOptions
|
||||
-XX:+UseG1GC
|
||||
-XX:SoftRefLRUPolicyMSPerMB=50
|
||||
-XX:CICompilerCount=2
|
||||
-XX:+HeapDumpOnOutOfMemoryError
|
||||
-XX:-OmitStackTraceInFastThrow
|
||||
-ea
|
||||
-Dsun.io.useCanonCaches=false
|
||||
-Djdk.http.auth.tunneling.disabledSchemes=""
|
||||
-Djdk.attach.allowAttachSelf=true
|
||||
-Djdk.module.illegalAccess.silent=true
|
||||
-Dkotlinx.coroutines.debug=off
|
||||
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
|
||||
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
|
||||
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
|
||||
|
21
vmoptions/rider.vmoptions
Normal file
21
vmoptions/rider.vmoptions
Normal file
|
@ -0,0 +1,21 @@
|
|||
-Xms128m
|
||||
-Xmx1024m
|
||||
-XX:ReservedCodeCacheSize=512m
|
||||
-XX:+IgnoreUnrecognizedVMOptions
|
||||
-XX:+UseG1GC
|
||||
-XX:SoftRefLRUPolicyMSPerMB=50
|
||||
-XX:CICompilerCount=2
|
||||
-XX:+HeapDumpOnOutOfMemoryError
|
||||
-XX:-OmitStackTraceInFastThrow
|
||||
-ea
|
||||
-Dsun.io.useCanonCaches=false
|
||||
-Djdk.http.auth.tunneling.disabledSchemes=""
|
||||
-Djdk.attach.allowAttachSelf=true
|
||||
-Djdk.module.illegalAccess.silent=true
|
||||
-Dkotlinx.coroutines.debug=off
|
||||
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
|
||||
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
|
||||
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
|
||||
|
21
vmoptions/rubymine.vmoptions
Normal file
21
vmoptions/rubymine.vmoptions
Normal file
|
@ -0,0 +1,21 @@
|
|||
-Xms128m
|
||||
-Xmx1024m
|
||||
-XX:ReservedCodeCacheSize=512m
|
||||
-XX:+IgnoreUnrecognizedVMOptions
|
||||
-XX:+UseG1GC
|
||||
-XX:SoftRefLRUPolicyMSPerMB=50
|
||||
-XX:CICompilerCount=2
|
||||
-XX:+HeapDumpOnOutOfMemoryError
|
||||
-XX:-OmitStackTraceInFastThrow
|
||||
-ea
|
||||
-Dsun.io.useCanonCaches=false
|
||||
-Djdk.http.auth.tunneling.disabledSchemes=""
|
||||
-Djdk.attach.allowAttachSelf=true
|
||||
-Djdk.module.illegalAccess.silent=true
|
||||
-Dkotlinx.coroutines.debug=off
|
||||
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
|
||||
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
|
||||
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
|
||||
|
21
vmoptions/studio.vmoptions
Normal file
21
vmoptions/studio.vmoptions
Normal file
|
@ -0,0 +1,21 @@
|
|||
-Xms128m
|
||||
-Xmx1024m
|
||||
-XX:ReservedCodeCacheSize=512m
|
||||
-XX:+IgnoreUnrecognizedVMOptions
|
||||
-XX:+UseG1GC
|
||||
-XX:SoftRefLRUPolicyMSPerMB=50
|
||||
-XX:CICompilerCount=2
|
||||
-XX:+HeapDumpOnOutOfMemoryError
|
||||
-XX:-OmitStackTraceInFastThrow
|
||||
-ea
|
||||
-Dsun.io.useCanonCaches=false
|
||||
-Djdk.http.auth.tunneling.disabledSchemes=""
|
||||
-Djdk.attach.allowAttachSelf=true
|
||||
-Djdk.module.illegalAccess.silent=true
|
||||
-Dkotlinx.coroutines.debug=off
|
||||
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
|
||||
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
|
||||
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
|
||||
|
21
vmoptions/webide.vmoptions
Normal file
21
vmoptions/webide.vmoptions
Normal file
|
@ -0,0 +1,21 @@
|
|||
-Xms128m
|
||||
-Xmx1024m
|
||||
-XX:ReservedCodeCacheSize=512m
|
||||
-XX:+IgnoreUnrecognizedVMOptions
|
||||
-XX:+UseG1GC
|
||||
-XX:SoftRefLRUPolicyMSPerMB=50
|
||||
-XX:CICompilerCount=2
|
||||
-XX:+HeapDumpOnOutOfMemoryError
|
||||
-XX:-OmitStackTraceInFastThrow
|
||||
-ea
|
||||
-Dsun.io.useCanonCaches=false
|
||||
-Djdk.http.auth.tunneling.disabledSchemes=""
|
||||
-Djdk.attach.allowAttachSelf=true
|
||||
-Djdk.module.illegalAccess.silent=true
|
||||
-Dkotlinx.coroutines.debug=off
|
||||
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
|
||||
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
|
||||
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
|
||||
|
21
vmoptions/webstorm.vmoptions
Normal file
21
vmoptions/webstorm.vmoptions
Normal file
|
@ -0,0 +1,21 @@
|
|||
-Xms128m
|
||||
-Xmx1024m
|
||||
-XX:ReservedCodeCacheSize=512m
|
||||
-XX:+IgnoreUnrecognizedVMOptions
|
||||
-XX:+UseG1GC
|
||||
-XX:SoftRefLRUPolicyMSPerMB=50
|
||||
-XX:CICompilerCount=2
|
||||
-XX:+HeapDumpOnOutOfMemoryError
|
||||
-XX:-OmitStackTraceInFastThrow
|
||||
-ea
|
||||
-Dsun.io.useCanonCaches=false
|
||||
-Djdk.http.auth.tunneling.disabledSchemes=""
|
||||
-Djdk.attach.allowAttachSelf=true
|
||||
-Djdk.module.illegalAccess.silent=true
|
||||
-Dkotlinx.coroutines.debug=off
|
||||
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
|
||||
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
|
||||
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
|
||||
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
|
||||
|
Loading…
Add table
Reference in a new issue