首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >重写另一个项目中的Java类

重写另一个项目中的Java类
EN

Stack Overflow用户
提问于 2017-05-29 08:49:49
回答 1查看 394关注 0票数 2

我是Java开发中的新成员,我将尝试简单而简短地提出我的问题。希望它能起作用:)。

目标

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

问题

它不管用-)

简短描述

我有两个Java项目。项目A是一个更大的网络项目。项目B是一个Web片段项目。我想从项目A中扩展一些类,但是我不想编辑原始的源代码。因此,我们的想法是扩展项目B中的类。

当前状态

创建项目B

我用Eclipse向导创建了项目B

代码语言:javascript
运行
复制
File > New > Project > Web Fragment Project

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

将类添加到项目B

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

代码语言:javascript
运行
复制
Project A > WebContent > WEB-INF > src > a > b > c > MyClass.java
Project B > WebContent > WEB-INF > src > a > b > c > MyClass.java

两个类都在同一个包中。

代码语言:javascript
运行
复制
package a.b.c;

到目前一切尚好。我为控制台编写了一些测试输出,以检查类是否将被正确重写。

部署

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

补充资料

项目A的性质

  • 项目B项目A的Web部署程序集
  • 我在Java路径的Projects选项卡中添加了项目B
  • 在“订单和出口”选项卡下,我将项目B移动到项目A

问题(S)

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

事先谢谢你,并致以良好的问候,丹尼尔

EN

回答 1

Stack Overflow用户

发布于 2017-05-29 09:07:09

您必须告诉JVM使用修补类。为了做到这一点,您需要匹配修补类的包和类名。魔法发生在classpath中。JVM按顺序加载类搜索。这意味着您将修补程序设置为第一次加载。

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

Eclipse将此作为内置函数。你可以找到它

代码语言:javascript
运行
复制
Project -> Properties -> Java Build Path -> Add Class Folder

添加修补类作为第一个条目。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44238256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档