Java Jar Zip File addJarLibralyClassPath(Object classLoaderMakedObject, File jarPath)

Here you can find the source of addJarLibralyClassPath(Object classLoaderMakedObject, File jarPath)

Description

add Jar Libraly Class Path

License

Open Source License

Declaration

@SuppressWarnings("unchecked")
public static void addJarLibralyClassPath(Object classLoaderMakedObject, File jarPath) throws Exception 

Method Source Code

//package com.java2s;
/*//from  w  w  w .ja  v  a2  s.co m
file of LaBeeFramework
https://www.bee-wkspace.com/
    
Copyright (C) 2016- Naoki Yoshioka (ARTS Laboratory)
http://www.arts-lab.net/dev/
    
This library is free software; you can redistribute it and/or 
modify it under the terms of the GNU Lesser General Public License 
as published by the Free Software Foundation; 
either version 3 of the License, or any later version.
    
This library is distributed in the hope that it will be useful, 
but WITHOUT ANY WARRANTY; without even the implied warranty of 
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
See the GNU Lesser General Public License for more details.
*/

import java.io.File;

import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;

public class Main {

    @SuppressWarnings("unchecked")
    public static void addJarLibralyClassPath(Object classLoaderMakedObject, File jarPath) throws Exception {
        URLClassLoader classLoader = (URLClassLoader) classLoaderMakedObject.getClass().getClassLoader();

        @SuppressWarnings("rawtypes")
        Class classClassLoader = URLClassLoader.class;
        Method methodAddUrl = classClassLoader.getDeclaredMethod("addURL", URL.class);

        methodAddUrl.setAccessible(true);
        methodAddUrl.invoke(classLoader, jarPath.toURI().toURL());
    }

    public static Class<?> getClass(Object classLoaderMakedObject, File file, String targetClass) throws Exception {
        URL[] urls = { file.toURI().toURL() };
        URLClassLoader classLoader = (URLClassLoader) classLoaderMakedObject.getClass().getClassLoader();
        ClassLoader loader = URLClassLoader.newInstance(urls, classLoader);
        Class<?> clazz = loader.loadClass(targetClass);
        return clazz;
    }
}

Related

  1. addFileToJar(File baseDir, File src, JarOutputStream zOut)
  2. addFileToJar(File file, ZipOutputStream zipStream, String path)
  3. addFileToJar(File fileOrDirectoryToAdd, File extractedJarPath, JarOutputStream target)
  4. addFileToJar(JarOutputStream jar, InputStream file, String path)
  5. addJar(File path)
  6. addJarLibralySystemClassPath(File jarPath)
  7. addJARs(File dir)
  8. addJars(File directory, boolean recursive)
  9. addJarsToClassPath(String jarPath)