如何知道 java 一个包 分布在classpath中 哪些个jar 或 class 文件中

如何知道 java 一个包 分布在classpath中 哪些个jar 或 class 文件中,第1张

找到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 相对路径出错等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10151344.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存