怎样将jar文件添加到工程的classpath下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样将jar文件添加到工程的classpath下相关的知识,希望对你有一定的参考价值。

步骤:
1、在bea Home下建个目录,命名为:publib
2、将所有的jar文件放在这个目录里
3、在这里目录里建一个批处理文件,命名为:setEnv.cmd
4、用文本编辑器打开setEnv.cmd文件,加入如下内容:
set CLASSPATH=%CLASSPATH%;%1
5、用文本编辑器打开startWebLogic.cmd文件,在适当的地方加入如下内容:
set publib=D:\\bea\\publib
set CLASSPATH=.;%CLASSPATH%;
for %%1 in (%publib%\\*.jar) do call %publib%\\setEnv.cmd %%1
这样就把publib下的所有.jar文件都添加到了运行时的CLASSPATH中。
参考技术A 如果你用Eclipse开发项目,第一步你把jar包拷贝到项目中,第二步到项目属性的Java Build Path里面的Libraryies里面添加这个jar包。 参考技术B 直接把jar文件复制到项目中

当我调用 Jython *而不*将它们添加到 $CLASSPATH 时,如何将 jars 添加到类路径中?

【中文标题】当我调用 Jython *而不*将它们添加到 $CLASSPATH 时,如何将 jars 添加到类路径中?【英文标题】:How can I add jars to the classpath when I invoke Jython *without* adding them to $CLASSPATH? 【发布时间】:2010-10-06 23:09:46 【问题描述】:

我想做类似jython -cp FOO:BAR:BAZ argle.py的事情。

如果我将FOOBARBAZ 添加到$CLASSPATH,则可以。我试图在运行时将它们添加到sys.path,但这似乎不适用于罐子。如果我在运行时将扩展 jar 的路径添加到 sys.path,它确实工作。有没有一个简单的替代方法来爆炸 jar 文件?为每个运行此脚本的用户增加 $CLASSPATH 是不可接受的替代方案。

谢谢。

【问题讨论】:

我也想知道这个!我查看了 jython 启动脚本,但我的 bash 不够好,无法理解。 【参考方案1】:

java -cp JAR1:JAR2:jython.jar org.python.util.jython pythonScript.py 在这里工作,适用于 Linux 和 Macintosh。在 Windows 上,将类路径中的冒号换成分号,您应该会很顺利。

【讨论】:

【参考方案2】:

您可以使用-D 选项设置python.path

jython -Dpython.path=FOO:BAR:BAZ argyle.py

【讨论】:

注意:在 Windows 上用分号 ';' 替换冒号 ':' 分隔符分隔器。 jython -Dpython.path=FOO;BAR;BAZ argyle.py 在 Windows 上,在指定路径时使用双反斜杠 \\,如果路径名包含空格,则用双引号将其括起来。不知道是否需要尾部斜杠 /。没有它我也能正常工作。【参考方案3】:

jython 命令支持将参数传递给java 命令...所以:

jython -J-cp JAR1:JAR2

您可以通过添加--print 开关来验证生成的命令:

jython -J-cp JAR1:JAR2 --print

上面将打印出实际的java命令而不是执行它。

【讨论】:

【参考方案4】:

您可以创建一个包含所有相关类的大 JAR。下面的 ant sn-p 说明了这个想法:

<target name="jar">
    <mkdir dir="build/jar"/>
    <unjar src="lib/jython.jar" dest="$classes.dir" />
    <unjar src="lib/FOO.jar" dest="$classes.dir" />
    <unjar src="lib/BAR.jar" dest="$classes.dir" />
    <unjar src="lib/BAZ.jar" dest="$classes.dir" />

    <jar destfile="build/jar/bigjython.jar" basedir="$classes.dir">
        <manifest>
            <attribute name="Main-Class" value="$main-class"/>
        </manifest>
    </jar>
</target>

【讨论】:

现在如何使用 bigjython.jar 运行我的脚本? bigjython.jar 旨在包含原始 jython.jar 以及您的额外 jar。所以最后 bigjython jar 应该和 jython.jar 一样工作,但不需要 -cp 参数。 我没有使用 jython.jar - 我正在使用来自 shell 的 jython 命令来执行 argle.py

以上是关于怎样将jar文件添加到工程的classpath下的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse 工程目录下的.classpath.project文件和.settings文件作用

解压出来的ojdbc14文件放java哪里?

谈谈Java的classpath

eclipse中怎样把没有.classpath和.project文件的工程导入

怎样将oracle11的驱动jar包导入到eclipse

SpringBoot-读取classpath下文件