
找到classpath及jar中相关类,可以参考以下代码,与你的表现形式有些不同。你那样的,我以前也见过,但一时想不起来是怎么实现的了。
import javaioFile;import javautilEnumeration;
import javautiljarJarEntry;
import javautiljarJarFile;
public class ActivityTest {
public static void main(String[] args) throws Exception {
String findname = "Fileclass";
String str = SystemgetProperty("sunbootclasspath");
String[] jarnames = strsplit(";");
for (int i = 0; i < jarnameslength; i++) {
File file = new File(jarnames[i]);
if (fileisFile() && fileexists()) {
JarFile jar = new JarFile(file);
Enumeration<JarEntry> enums = jarentries();
while (enumshasMoreElements()) {
JarEntry entry = enumsnextElement();
if (entrygetName()endsWith(findname)) {
Systemoutprintln(entry);
return;
}
}
}
}
}
}
CLASSPATH是系统的环境变量,它告诉JAVA编译程序到什么地方搜索那些不是JDK平台本身附带的类库。
环境变量设置方法:
在[我的电脑]上右击,选择[属性]。再选择[高级]-[环境变量],在[系统变量]中[添加]一个新的变量
JAVA_HOME=D:\JDK\1507,=号后面填你自己的JDK路径。
然后再编辑Path变量,选Path 点编辑,在尾部添加 %JAVA_HOME%\BIN; 包括分号。
这样就完成了JAVA的基本设置。
Maven项目,直接在eclipse运行主类run as java application成功,
直接用maven的package命令打包成jar包,ClassNotDefined/found
使用eclipse自带的export打包,找不到文件(相对路径问题)
该用maven的assembly好了一点
assembly:assembly
老老实实改成绝对路径
thisgetClass()getClassLoader()getResource("")getPath()+
这样本地运行可以,打成jar包还是不可以
检查了一下 路径最后居然会多一个!,前面多了file:
简单一点字符串去掉再加上相对路径就好了。。。
但是jar包是一个文件不是目录,这样也不行
最后直接读取文件流
我有一个想法,就是数据文件不要一起打成jar包而是分开,这样就没有这个问题了。
以上就是关于如何知道 java 一个包 分布在classpath中 哪些个jar 或 class 文件中全部的内容,包括:如何知道 java 一个包 分布在classpath中 哪些个jar 或 class 文件中、怎样把JAR放CLASSPATH、Eclipse打jar包ClassNotDefined 相对路径出错等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)