`
yianpuodiaotu
  • 浏览: 241733 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

将jar包添加到lib中,并添加到classpath

阅读更多
在插件制作中,我们经常需要将一些第二方jar包添加到lib中,并加到类路径中去。(其他文件移动也可参考)
工具类:
import java.io.IOException;
import java.io.InputStream;
import java.util.List;

import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectDescription;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.wst.common.componentcore.ComponentCore;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
import org.osgi.framework.Bundle;

import com.cvicse.inforsuite.studio.core.Activator;

/**
 * StudioCoreUtil工具类.
 * 
 * @author huang_wei
 * 
 */
public class StudioCoreUtil {
        /**
	 * 返回Project应用目录指定目录的位置.
	 * 
	 * @param pj
	 *            project应用项目
	 * @param folder
	 *            目录名称
	 * @return 目录的位置
	 */

	public static IFolder getWebDir(final IProject pj, String folder) {
		final IVirtualComponent vc = ComponentCore.createComponent(pj);
		final IVirtualFolder vf = vc.getRootFolder().getFolder(folder);
		return (IFolder) vf.getUnderlyingFolder();
	}

	/**
	 * 复制资源到工作空间指定的路径中.
	 * 
	 * @param src
	 *            插件中资源的路径
	 * @param dest
	 *            工作空间中指定路径
	 */

	public static void copyFromPlugin(final IPath src, final IFile dest)
		throws CoreException{
		
		try {
			final Bundle bundle = Activator.getDefault().getBundle();
			final InputStream in = FileLocator.openStream(bundle, src, false);
			if(!dest.exists()){
				dest.create(in, true, null);
			}			
		} catch (IOException e) {
			throw new CoreException(Activator.createErrorStatus(e.getMessage(),
					e));
		}
	}

	/**
	 * 将list中的jar包复制到WEB-INF/lib下
	 * 
	 * @param pj
	 *            Studio Web应用项目
	 * @param list
	 *            包含jar包的list 
         * @param folderName
	 *            目录名称
	 */
	public static void addJarToLib(final IProject pj,IProgressMonitor monitor,
				final List<String> list,final String folderName){
		final IFolder webInfLib = StudioCoreUtil.getWebDir(pj, "WEB-INF/lib");
		
		try{
			//复制jar包
			for(String jar : list){
				StudioCoreUtil.copyFromPlugin(new Path(folderName+jar),
	                    webInfLib.getFile(jar));
				monitor.worked(1);
			}
		}catch(CoreException e){
			Activator.log(e);
		}	
	}
		
}

分享到:
评论
2 楼 yianpuodiaotu 2008-11-27  
用Ant? 高招! 
我考虑下在如何使用ant来移动该“文件”,如您有该经验,请不惜赐教
1 楼 Joo 2008-11-17  
直接用ANT写不是更简单?

相关推荐

    lib中的jar lib中的jar包

    - **构建工具**:Maven、Gradle等现代构建工具能自动管理`jar`依赖,下载并将其放入指定的`lib`目录,同时解决依赖冲突。 - **版本控制**:不同的项目可能依赖不同版本的`jar`包,使用版本控制工具(如Git)可确保...

    完整项目jar包 lib目录下

    描述中提到“需要的神马包自个儿下了到里面找到”,这暗示了该jar包可能没有包含所有必要的第三方库,用户可能需要根据项目需求自行添加或查找缺失的库。对于开发者来说,理解和管理这些依赖关系是至关重要的,因为...

    添加的jar包

    2. **本地类路径配置**:将下载的JAR文件放入项目的`lib`目录,然后将这个目录添加到项目的类路径(Classpath)中。在Eclipse或IntelliJ IDEA等IDE中,可以通过设置项目属性或模块依赖来完成这一步。 3. **引入API*...

    jsonlib所需jar包

    在Java项目中使用jsonlib时,首要步骤是将必要的jar包导入到工程文件夹。这些jar包通常包括json-lib-x.x.x-jdk15.jar(或对应于你的JDK版本的jar)和其他可能的依赖,如ezmorph-x.x.x.jar。确保将这些文件复制到项目...

    json-lib jar和所有依赖的jar

    在实际项目中,将这些JAR文件添加到项目的类路径(classpath)中,就可以使用`json-lib`提供的功能,而无需通过Maven或其他构建工具来管理依赖。 总的来说,`json-lib`是一个方便的JSON处理库,尤其对于那些不使用...

    json-lib 需要的所有jar包

    为了使用这个压缩包中的jar文件,你需要将其解压并添加到你的Java项目的类路径中,或者如果你使用的是现代的构建工具(如Maven或Gradle),可以在项目的依赖管理部分添加相应的依赖配置。 总之,Json-lib是Java开发...

    lib.zip各种jar包

    在实际开发中,这些JAR文件通常会添加到项目的类路径(ClassPath)中,使得代码能够直接引用和调用其中的类和方法。使用构建工具如Maven或Gradle,可以更加方便地管理和控制这些依赖库,避免版本冲突和重复引入。 ...

    批量jar包加载入CLASSPATH脚本

    此函数是整个脚本的核心,负责遍历指定路径下的所有jar文件,并调用`InsertClasspath`函数将其逐个添加到`CLASSPATH`中。具体步骤包括: 1. **初始化**:输出信息表明正在设置`CLASSPATH`。 2. **操作系统检测**:...

    json-lib-2.4-jdk15.zip jar包

    java jar包,亲测试可用 ...把一个JAR文件添加到系统的classpath环境变量之后,java通常会把这个JAR文件当做一个路径来处理。通常使用jar命令来压缩,可以把一个或多个路径全部压缩成一个JAR文件。

    jar包所在文件夹

    在构建项目时,如使用Maven或Gradle,这些jar包会被添加到项目的类路径(classpath)中,从而确保程序运行时能够正确地找到并使用它们。 总结来说,`json-lib jar包`用于处理JSON数据,`mysql驱动jar包`是与MySQL...

    json-lib-2.4-jdk15所需要的jar包

    对于`json-lib-2.4-jdk15`,这通常意味着你需要将下载的JAR包复制到项目的`lib`目录,然后在构建路径或IDE的设置中包含它们。在Maven或Gradle这样的构建工具中,可以通过添加依赖配置来实现。 标签“Java json jar...

    运行Spring的所有jar包包括lib.zip

    2. **构建类路径**:将解压后得到的jar包添加到项目的类路径中。在Java中,类路径是系统查找类文件的路径。对于命令行运行,可以使用`-cp`或`-classpath`参数指定;在IDE如Eclipse或IntelliJ IDEA中,可以通过设置...

    ant打jar包时, 怎么把所依赖的jar包与从源码中编译过来class文件合并成最终的一个jar?

    此外,`fileset`用于将编译后的class文件添加到jar中: ```xml &lt;target name="jar" depends="compile"&gt; &lt;jar destfile="dist/my-jar-with-dependencies.jar" basedir="build/classes"&gt; &lt;classpath refid=...

    gson的jar包。免费下载

    如果是在IDE中,比如Eclipse或IntelliJ IDEA,可以将jar包添加到项目的构建路径中,这样就能在代码中import Gson库的相关类并使用了。 总的来说,Gson是一个强大的JSON处理工具,它的主要功能包括将Java对象转换为...

    spring boot 第三方jar包抽离方案

    例如,执行`java -Dloader.path="lib/" -jar app.jar`即可启动应用,并使用lib目录中的jar包。 #### 2.2 spring-boot-maven-plugin参数控制 通过修改`spring-boot-maven-plugin`的配置,可以排除不需要打包进jar的...

    Netty 完整依赖的jar包, 你只需要下载netty源码,再添加这些jar就可以编译通过了

    在Eclipse中,你可以将这些jar包添加到项目的类路径(Classpath)中,方法是右键点击项目,选择"Build Path" -&gt; "Configure Build Path",然后在"Libraries"选项卡中添加外部JARs。确保每个必要的jar都被包含,这样...

    hadoop 所用的jar包

    - **本地库导入**:将JAR包复制到项目的lib目录,然后在IDE中手动添加到项目构建路径。 - **类路径设置**:在运行Java程序时,通过`-cp`或`-classpath`参数指定JAR包的位置。 总的来说,"hadoop 所用的jar包"是开发...

    json所需jar包 例如json-lib-2.2-jdk15等

    2. **添加到类路径**: 下载完成后,将`json-lib-2.2-jdk15.jar`添加到你的项目类路径中。如果你使用的是IDE(如Eclipse或IntelliJ IDEA),可以在项目设置中指定外部库的位置。对于命令行构建的项目,确保`jar`文件...

    关于servlet的jar包

    然而,在命令行或者非IDE环境下,需要手动将Servlet JAR包添加到项目的类路径(ClassPath)中,这样编译器和Java虚拟机才能找到并使用Servlet相关的类。 下载Servlet JAR包后,可以按照以下步骤将其添加到项目中: ...

    jsrl的jar包和jsp的jar包

    将这些jar包添加到项目的类路径(Classpath)或应用服务器的lib目录,可以确保开发和运行时能够正确解析和使用JSP及相关的库。 **如何添加jar包** 在传统的Java Web开发中,你可以手动将这些jar包复制到项目的`WEB...

Global site tag (gtag.js) - Google Analytics