gpt4 book ai didi

java - 覆盖另一个项目中的 Java 类

转载 作者:行者123 更新时间:2023-11-30 10:29:06 25 4
gpt4 key购买 nike

我是 Java 开发的新手,我会尽量简短地问我的问题。希望它有效:-)。

目标

在不编辑原始源文件的情况下从给定项目扩展一些 Java 类。

问题

它不起作用 ;-)

简短描述

我有两个 Java 项目。 Project A 是一个更大的Web 项目项目 B 是一个 Web Fragment 项目。我想从 Project A 扩展一些类,但我不想编辑原始资源。因此,我们的想法是扩展项目 B 中的类。

当前状态

创建项目 B

我使用 Eclipse 向导创建了项目 B

File > New > Project > Web Fragment Project

并将项目B添加到动态Web项目项目A

将类添加到项目 B

现在我使用与 Project A 相同的文件夹结构将原始 Java 类复制到 Project B

Project A > WebContent > WEB-INF > src > a > b > c > MyClass.java
Project B > WebContent > WEB-INF > src > a > b > c > MyClass.java

两个类都在同一个包中

package a.b.c;

到目前为止一切顺利。我为控制台写了一些测试输出来检查类是否会被正确覆盖。

部署

我部署了 Project A 并启动了 Tomcat 服务器。但是我的测试输出没有记录到控制台。所以我怀疑 MyClass.java 不会被覆盖。为什么?

附加信息

项目A属性

  • 项目 B 位于项目 A
  • Web 部署程序集
  • 我在Java 构建路径项目选项卡中添加了项目B
  • 订购和导出选项卡下,我将项目B移到项目A

问题

为什么 Project A 中的原始类不会被 Project B 中的 MyClass.java 覆盖。我有什么监督吗?

在此先感谢您,并致以最诚挚的问候,丹尼尔

最佳答案

您必须告诉 JVM 使用打补丁的类。为此,您需要匹配补丁类的包名和类名。魔法发生在 classpath 中。 JVM 按顺序加载类搜索。这意味着您将补丁设置为首先加载,例如

set CLASSPATH=..\yourPatch;..\theJar.jar

Eclipse IDE 将此作为内置功能。你可以找到它

Project -> Properties -> Java Build Path -> Add Class Folder

将您的补丁类添加为第一个条目。

关于java - 覆盖另一个项目中的 Java 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44238256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com