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;
一直报错。不知道这个类是如何引入的?
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包,并且调用里面的类和方法吗?
linux命令行运行jar包,一定要用-classpath指定路径吗?另外jar包名字后面还要跟一个类,这是为啥?