diff --git a/Launcher/source/client/ClientLauncher.java b/Launcher/source/client/ClientLauncher.java index c4f6929..345cdd1 100644 --- a/Launcher/source/client/ClientLauncher.java +++ b/Launcher/source/client/ClientLauncher.java @@ -119,6 +119,8 @@ args.add(jvmProperty("os.version", "10.0")); } + // A fucking shitty fix + args.add(jvmProperty(JVMHelper.JAVA_LIBRARY_PATH, params.clientDir.resolve(NATIVES_DIR).toString())); // Add classpath and main class Collections.addAll(args, profile.object.getJvmArgs()); @@ -325,9 +327,6 @@ private static void launch(ClientProfile profile, Params params) throws Throwable { - // Add natives path - JVMHelper.addNativePath(params.clientDir.resolve(NATIVES_DIR)); - // Add client args Collection args = new LinkedList<>(); if (Version.compare(profile.getVersion(), "1.6.0") >= 0) diff --git a/Launcher/source/helper/JVMHelper.java b/Launcher/source/helper/JVMHelper.java index b4cd461..8826cf0 100644 --- a/Launcher/source/helper/JVMHelper.java +++ b/Launcher/source/helper/JVMHelper.java @@ -4,7 +4,6 @@ import launcher.LauncherAPI; import sun.misc.Unsafe; -import java.io.File; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodHandles.Lookup; @@ -13,7 +12,6 @@ import java.lang.management.RuntimeMXBean; import java.lang.reflect.Field; import java.net.URL; -import java.nio.file.Path; import java.security.cert.Certificate; import java.util.Arrays; import java.util.Locale; @@ -50,9 +48,7 @@ public static final ClassLoader LOADER = ClassLoader.getSystemClassLoader(); // Useful internal fields and constants - private static final String JAVA_LIBRARY_PATH = "java.library.path"; - private static final MethodHandle MH_SET_USR_PATHS; - private static final MethodHandle MH_SET_SYS_PATHS; + public static final String JAVA_LIBRARY_PATH = "java.library.path"; private static final Object UCP; private static final MethodHandle MH_UCP_ADDURL_METHOD; private static final MethodHandle MH_UCP_GETURLS_METHOD; @@ -73,8 +69,6 @@ // Get trusted lookup and other stuff Field implLookupField = Lookup.class.getDeclaredField("IMPL_LOOKUP"); LOOKUP = (Lookup) UNSAFE.getObject(UNSAFE.staticFieldBase(implLookupField), UNSAFE.staticFieldOffset(implLookupField)); - MH_SET_USR_PATHS = LOOKUP.findStaticSetter(ClassLoader.class, "usr_paths", String[].class); - MH_SET_SYS_PATHS = LOOKUP.findStaticSetter(ClassLoader.class, "sys_paths", String[].class); // Get UCP stuff1 Class ucpClass = firstClass("jdk.internal.loader.URLClassPath", "sun.misc.URLClassPath"); @@ -110,35 +104,6 @@ } @LauncherAPI - public static void addNativePath(Path path) - { - String stringPath = path.toString(); - - // Add to library path - String libraryPath = System.getProperty(JAVA_LIBRARY_PATH); - if (libraryPath == null || libraryPath.isEmpty()) - { - libraryPath = stringPath; - } - else - { - libraryPath += File.pathSeparatorChar + stringPath; - } - System.setProperty(JAVA_LIBRARY_PATH, libraryPath); - - // Reset usrPaths and sysPaths cache - try - { - MH_SET_USR_PATHS.invoke((Object) null); - MH_SET_SYS_PATHS.invoke((Object) null); - } - catch (Throwable exc) - { - throw new InternalError(exc); - } - } - - @LauncherAPI @SuppressWarnings("CallToSystemGC") public static void fullGC() {