情况为:在cmd中,运行java -jar *.jar,出现classnotfound异常,jar中包含lib下面jar下面的class找不到,后来在MANIFEST.MF中添加了Class-Path的配置,但是还是不行?
之一,将组件的Jar文件拷贝到公共JRE目录下的lib\ext下。比如,我的JDK1.5装在C:
\Program Files\Java下,之下的j2re1.5.0是公共JRE,就将B.jar拷贝到: C:\Program
Files\Java\j2re1.5.0\lib\ext 之下,这样在名令行下运行java -jar A.jar就可以。
但这样,我们需要在JRE留下一大坨东西,看起来似乎不太好看。
之二,看Java文档说,manifest文件中还有个属性叫做Class-Path,在A.jar的manifest中加上一句:
Class-Path: B.jar
重新打包。B.jar和A.jar在一个路径下,这样相对路径不变的话,B.jar会被ClassLoader照顾到。运行 java -jar
A.jar
果然通过!这似乎还不错,我们可以把我们的软件做好,所有的功能分散在各个Jar文件中,但不能动任何一个Jar文件,相对路径一变,还是不行。而且,每
一个Jar文件之间要算好相对路径,每一个都要配置Class-Path,晕也晕死。
一个未完成的想法,看了看Eclipse的文件结构,有一个单独的launcher来启动整个Eclipse。launcher就是一个Jar文件,其中
的manifest并没有写Class-Path,它也能够调用plugins目录下的诸多组件来完成Eclipse的启动,运作。它是如何做的
呢?Launcher中似乎重写了Classloader,可惜弄不到它的源代码,秘密也许就在classloader中。
分享到:
相关推荐
此存储库仅用于演示testng.test.classpath属性问题。 问题 以下是中testng.test.classpath的... 运行测试: java -cp $CLASSPATH:out org.testng.TestNG testng.xml 使用testng.test.classpath属性重新运行测试: jav
javax模块为您提供了人类可读的参数名称和本机数据结构值,以使您可以从剧本中运行Java应用程序,从而使这些情况更为合理。 选项: 类路径 JVM应该搜索以找到任何依赖关系的文件系统路径的列表。 模块将获取列表...
制作一个可执行的 JAR 文件包来发布你的程序是 JAR 文件包最典型的用法。 Java 程序是由若干个 .class 文件组成的。这些 .class 文件必须根据它们所属的包不同而分级分目录存放;运行前需要把所有用到的包的根目录...
JAVAC的帮助,输入[sd0807@localhost ~]$ javac ... -javaagent:[=] load Java programming language agent, see java.lang.instrument -splash:<imagepath> show splash screen with specified image
Java编译语言将Java代码编译成.class文件(只有一种形式),而C/C++语言将代码编译成01码,不同的操作系统的01码指令不同,这造成了不能跨平台,而Java将这个任务交给JVM,不同操作系统上的JVM将.class文件编译成不同...
jmx入门的源码例子,包括所需jar包,下载后把jmxtools.jar加入classpath中,然后启动程序, 可以在IE中查看mbean,也可以jconsole中查看
:$JAVA_HOME/lib/mysql-connector-java-3.2.0.jar:$JAVA_HOME/lib/classes12.jar export PATH=$PATH:$JAVA_HOME/bin export JRE_HOME=$JAVA_HOME/jre 保存退出。 # source /etc/profile ##使环境变量生效 # set 要...
如果要在Web Application Server(Resin,Tomcat),需要再运行时加入参数: -Djmagick.systemclassloader=no 或者在程序中写入:System.setProperty("jmagick.systemclassloader", "no"); 命令行使用方法: convert...
.1. 学习目的 本文档是针对hSQL 数据库方面的基础学习,为了使项目组成员能够...注意hsqldb.jar 文件的文件路径,最好能放到classpath 里面,或者放到当前路径下. java -cp hsqldb.jar org.hsqldb.util.DatabaseManager
jstrip 是一个 CLI 工具,它连接到您的应用程序中并检测哪些类是不需要的,并将它们从库中删除以减小文件大小 用法 java -jar jstrip.jar [-i | --input input.jar] [-c | --mainclass package.Class] <-cp | --...
path to the definition file <options> -verbose, -verify, -haltOnError, -genjp, -details <classpath> classpath needed for compilation but not to be transformed (eg -cp myAspects.jar;...
TestNG是一个Java的框架,所以第一个要求是JDK要安装在你的机器上。 系统要求 JDK 1.5或以上 内存 没有最低要求 磁盘空间 没有最低要求 操作系统 没有最低要求 步骤1 -验证Java安装在你的机器上 现在,打开...
1.解压wlsvm.zip在lib目录下得到 libsvm.jar和wlsvm.jar两个文件,将其拷贝到weka安装目录下 2.修改位于weka安装目录下的RunWeka.ini文件 修改cmd_default=javaw -Dfile.encoding=#fileEncoding# -Xmx#maxheap# -...
java笔试题算法贾姆 Jahmm是一个 Java 库,实现了与 Hidden Makov 模型(简称 HMM)相关的各种知名算法。 库的源代码可用; 它在 GPL 下获得许可(请参阅资源/复制文件)。 这个库简短而简单。 它是为了清楚起见而写...
这可以通过将CLASSPATH环境变量设置为包含jar文件夹或在构建过程中进行设置来完成: javac -cp LWJGL_2.9.1/jar/* DragonFractal.java 跑步: 除了CLASSPATH,要运行显示,还必须将本机库添加到VM。 java -cp ....
在项目类路径中包含mysql-connector-java-8.0.11.jar和jansi-1.17.1.jar(将CLASSPATH变量添加为环境变量以与cmd一起运行) 编译源代码并运行(如果使用javac进行编译,则必须进行打包-在CLASSPATH中包含src目录或...
JavaPI用法./gradlewgradle run在您自己的程序中使用模块创建jar文件gradle jar # ...} 编译并运行程序javac -d bin -cp '.:./lib/org.alanzheng.jar' <PATH>java -classpath 'bin:./lib/org.alanzheng.jar' 笔记j
这是一个关于如何创建和使用自定义复制端点的示例。 用法 簇 mvn clean package 将 hbase.replication=true 添加到 hbase-site.xml 将 jar 复制到每个区域服务器上的 lib 目录 重启区域服务器 java -cp $(hbase ...
MySQL目前提供的java驱动程序为Connection/J,可以从MySQL官方网站下载,并找到mysql-connector-java-3.0.15-ga-bin.jar文件,此驱动程序为纯java驱动程序,不需做其他配置。 2、动态指定classpath 如果需要执行...
CrystalBall - Apache Hadoop MapReduce 中的朴素贝叶斯文本分类器 创建者:徐敏 日期:2015年6月1日 如何使用该程序 构建程序 ./build.sh 将在bin/创建一个 jar ... java -cp bin/crystal.jar:$(hadoop classpath) \