Java加载jar包:给你任意路径的一个jar包,用Java程序加载该jar包,并引用jar包里类的方法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java加载jar包:给你任意路径的一个jar包,用Java程序加载该jar包,并引用jar包里类的方法?相关的知识,希望对你有一定的参考价值。

在网上搜这个问题,全是一样的答案,如下:
import java.io.File;
import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.List;

import DC.Utility.Configuration;

public class ClassLoad

static URLClassLoader loader = null;

/**
* * 在默认的目录加载jar
* *
* @return
*
*/

public static URLClassLoader getClassLoad()

Configuration config = new Configuration(Configuration.getRoot()+File.separator

+ "classpath.properties");

if (loader == null)

URLClassLoaderUtil urlClass = new URLClassLoaderUtil(config

.getValue("classpath1"), false);

loader = urlClass.getClassLoader();



return loader;



/**
* * 在给定的路径加载jar文件
* *
* @param url
* 指定路径
* *
* @param isFile
* true 文件 false 目录
* *
* @return
*
*/

public static URLClassLoader getClassLoad(String url, boolean isFile)


URLClassLoaderUtil urlClass = new URLClassLoaderUtil(url, false);
URLClassLoader loader = urlClass.getClassLoader();
return loader;




class URLClassLoaderUtil


URLClassLoader classLoader = null;// URLClassLoader类载入器

private String jarFileName;

private boolean isFile = true;

List<String> jars = new ArrayList<String>(0);

/**
* * 加载具体的某一jar包
* *
* *
* @param jarFileName
*
*/

public URLClassLoaderUtil(String jarFileName)


this.setJarFileName(jarFileName);

this.inti();


/**
* * 加载jar包 当isFile为false是加载文件夹下所有jar
* *
* *
* @param jarFileName
* * 路径
* *
* @param isFile
*
*/

public URLClassLoaderUtil(String jarFileName, boolean isFile)


this.setJarFileName(jarFileName);

this.setFile(isFile);

this.inti();



/**
*
* *初始化,读取文件信息,并将jar文件路径加入到classpath
*
*/

private void inti()

// 添加jar文件路径到classpath

if (this.isFile)


File f = new File(jarFileName);

addPath(f.toURI().toString());

jars.add(f.getAbsolutePath());


else


ReadJarFile df = new ReadJarFile(jarFileName, new String[] "jar", "zip" );

this.jars = df.getFiles();

List<String> jarURLs = df.getFilesURL();

Object[] o = jarURLs.toArray();

addPath(o);




可是在引入包的时候,这一行
import DC.Utility.Configuration;
一直报错。不知道这个类是如何引入的?

参考技术A 实体类 User

JSP页面
<form action="">
<input type="checkbox" id="n1" name="names" value="a"/>
<input type="checkbox" id="n2" name="names" value="b"/>
<input type="checkbox" id="n3" name="names" value="c"/>
<input type="checkbox" id="n4" name="names" value="d"/>
</form>
JAVA文件
String[] names = this.getRequest().getParameterValues("names");
User user = new User();
user.setNames(names);本回答被提问者采纳
参考技术B 加入到classpath里面

java 如何打开一个jar包

我把一些类打成一个jar包,现在想添加新的功能,怎么打开这个jar包呢?3q!

打开执行jar包:在命令行(开始菜单--运行cmd)输入:java -jar <全路径>

例如:java -jar c:\desktop\hello.jar

此jar包中的源代码中指定了Main类,否则无效。

如果是查看jar包内文件解压jar包,可以使用jar -xvf或者常用的解压缩软件都可以打开。

如果是想在编译器中查看jar包代码,例如Eclipse中查看引用jar包,需要安装JAD进行反编译。方法如下:

Java Decompiler Plugin For Eclipse IDE

1. 下载JAD ,
1.5.8版本的jad在 http://www.softpedia.com/progDownload/JAD-Download-85911.html

将展开后的jad.exe放到某个目录,例如 c:/jad/jad.exe

2. 下载JADClipse插件

http://sourceforge.net/projects/jadclipse/files/
将展开后的net.sf.jadclipse_3.3.0.jar放入Eclipse的plugins子目录下

3. 启动Eclipse
注意:eclipse需要重新启动

4. 配置Jadclipse, 在 Windows - Preferences - Java - JadClipse下
配置Jad的路径为 C:/jad/jad.exe;

只需编辑这一个值就ok了
参考技术A 用MyEclipse工具 左侧的项目列表 添加jar包就可以了。 参考技术B jar包的东西一般都是编译过的.class文件,如果要做二次开发,就要进行反编译,将文件反编译成.java文件。eclipse反编译我没用过,不知道效果怎么样。本回答被提问者和网友采纳 参考技术C ...一般的解压缩工具就可以啊 参考技术D 下载BE,MT

以上是关于Java加载jar包:给你任意路径的一个jar包,用Java程序加载该jar包,并引用jar包里类的方法?的主要内容,如果未能解决你的问题,请参考以下文章

java可以动态加载一个jar包,并且调用里面的类和方法吗?

java项目中jar包引用问题

linux命令行运行jar包,一定要用-classpath指定路径吗?另外jar包名字后面还要跟一个类,这是为啥?

如何引入第三方jar包

ClassLoader实现自定义类加载器加载指定路径下的Class文件和Jar包

ClassLoader实现自定义类加载器加载指定路径下的Class文件和Jar包