java eclipse 修补了 JRE 类 Xbootclasspath 无法找到或加载主类

标签 java eclipse

我根据自己的需要修改了一些核心java类,例如。在 Java.lang.String 匹配方法中使用正则表达式缓存。

我想使用这些修补过的类,而不是 jre 附带的 rt.jar 中的默认类。

我已将 src.zip 源代码导入到 eclipse 中,其中包含 rt.jar 中类文件的所有源文件,并根据我的需要更改了它们。然后,我从 eclipse JRE 库配置中删除了 rt.jar,并更改了 eclipse 中已安装 JRE 的默认 VM 参数选项,以告诉 VM 使用我自己的自定义核心类>

-Xbootclasspath/p: /media/SSD/workspace/proj/bin/

但是,当运行简单的测试程序时,虚拟机无法启动,并显示以下内容>

"Could not find or load main class .media.SSD.workspace.proj.bin."

我也尝试使用 -Xbootclasspath/a: 来追加,但没有什么区别。

所有核心java类都位于具有正确目录结构的bin文件夹中(由eclipse编译),例如java/util、java/io等。

我不知道为什么它提示主类,因为 JRE 库没有主类,而我自己的项目主要方法位于 bin/core/boot.class 中,该方法由 eclipse 在运行中检测到并设置配置(之前工作正常)。

我正在遵循这个指南,它可能有点过时,并且没有使用 eclipse 来修补核心类>

http://media.techtarget.com/tss/static/articles/content/CovertJava/Sams-CovertJava-15.pdf

有人可以指出我做错了什么吗?

更新/解决方法: 我创建了一个包含所有核心类的新项目,然后将其导出为一个新的 rt.jar 文件,并将其放在 openjdk 的 jre/lib 文件夹中的默认文件位置,它就可以工作了。但这意味着我机器上的所有 java 应用程序都将使用修补后的类,而不仅仅是我的项目,这远非理想,所以我上面的问题仍然存在。

最佳答案

参数中不应有空格

-Xbootclasspath/p:/media/SSD/workspace/proj/bin/

bootclasspath 的参数(在 : 之后)应该是 ;(在 Windows 上)分隔的文件夹 zip 和 jar 列表。

Java 已将您的参数解释为要添加到 bootclasspath 的空文件夹列表和要运行的类的名称,这就是为什么它提示找不到类 .media.SSD.workspace.proj.bin。

关于java eclipse 修补了 JRE 类 Xbootclasspath 无法找到或加载主类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30468535/

相关文章:

eclipse - pull 远程分支后进行大量 git 提交

java - UnsatisfiedLinkError: java.library.path 中没有 j3dcore-ogl

java - 如何在 eclipse kepler 中动态重新加载 GUI?

java - AWS DynamoDB 中的 AccessDeniedException

java - 是否可以使用 Jackson JSON 进行非对称序列化和反序列化?

java - 一个棘手的死锁示例

Eclipse Juno - 当 View 失去焦点时如何使 View 最小化?

java - 为什么使用 Maven-GPG-Plugin 使用 GnuPG 对项目的 Artifact 进行签名?

java - PDFBox 中的多边形注释 PDAnnotation

java - error(s)_during_evaluation Eclipse