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

时间:2015-05-26 20:44:32

标签: 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 /

然而,当运行简单的测试程序时,VM无法使用以下>

启动
  

"无法找到或加载主类.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应用程序都将使用修补的类而不仅仅是我的项目,这远非理想,所以我的问题仍然存在。

1 个答案:

答案 0 :(得分:1)

There should be no whitespace in your parameter

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

The parameter to bootclasspath (after :) should be a ; (on Windows) delimited list of folders zips and jars.

Java has interpreted your parameters as empty list of folders to prepend to bootclasspath and a name of class to run, that is why it is complaining that it cannot find class .media.SSD.workspace.proj.bin.