Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java eclipse修补的JRE类Xbootclasspath无法找到或加载主类_Java_Eclipse - Fatal编程技术网

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

java eclipse修补的JRE类Xbootclasspath无法找到或加载主类,java,eclipse,Java,Eclipse,我根据自己的需要修改了一些核心java类,例如在java.lang.String匹配方法中使用regexp缓存 我想使用这些补丁类,而不是jre附带的rt.jar中的默认类 我已经将src.zip源代码导入到eclipse中,eclipse包含rt.jar中类文件的所有源文件,并根据需要对它们进行了更改。然后,我从eclipse JRE库配置中删除了rt.jar,并更改了eclipse中已安装JRE的默认VM参数选项,以告知VM使用我自己的自定义核心类> -Xbootclasspath/p:/m

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

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

我已经将src.zip源代码导入到eclipse中,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:append代替,但没有任何区别

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

我不知道为什么它会抱怨一个主类,因为JRE库没有主类,我自己的项目主要方法是bin/core/boot.class,eclipse在运行配置中检测并设置它(以前工作得很好)

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

有人能指出我做错了什么吗

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

您的参数中应该没有空格

-Xbootclasspath/p:/media/SSD/workspace/proj/bin/
bootclasspath的参数(在
之后:
)应该是
(在Windows上)文件夹的分隔列表拉链和罐子


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

如何处理带空格的文件夹(重命名除外)?将整个参数包装在
中。例如
“-Xbootclasspath/p:/path/带空格”