【问题标题】:Reverse engineering in external jar in javajava中外部jar的逆向工程
【发布时间】:2017-03-21 09:09:10
【问题描述】:

我想创建一个用于日志记录的外部 jar,这样我就可以在任何 java 项目中导入这个 jar。但是我想在外部 jar 中使用 java 项目的类和方法。

有可能吗?如果有,请帮忙。 我认为逆向工程是可能的,但无法弄清楚如何在外部 jar 中使用类和特殊方法。

【问题讨论】:

  • 我不确定我是否明白你在问什么。你能举个例子吗?由于您编写的 jar 将在 any java 应用程序中使用,因此您无法知道哪些类是该应用程序的一部分或它们的作用。因此,无论如何您都无法以任何有意义的方式使用它们。那么用例是什么?
  • 我想从数据库中插入和获取我的审计日志,这可以在任何应用程序中使用。所以我打算创建一个外部jar,它有两种方法,一种是插入,第二种是检索数据,这些方法包括从数据库中调用程序。对于程序的调用,我将使用我主要项目的类和方法。
  • 您可能想要使用构建管理器,例如 maven 或 gradle。您可以做的是创建一个构建目标为 jar 的 maven 项目。此外,您要在此 jar 中使用的其他项目的类也应该是通用的,而不是该项目的一部分。它们可以作为单独的罐子取出,放在需要的地方。
  • 我仍然不确定我是否正确理解你,但你可能在回调之后,即应用程序实现了 jar 提供的某些接口,并使用 jar 的代码注册这些接口的实现以启用它调用这些程序。
  • 我已经有一个使用构建管理器 maven 创建 API 的 maven 项目。我在 API 项目中有一个 A 类,并将创建一个完全独立的 Java 项目的外部 lib(jar),并希望使用 A 类及其在那个外部 jar 中的方法。

标签: java reverse-engineering


【解决方案1】:

这是可能的,但非常糟糕的做法。

您需要将每个项目相互导入。

项目 A 导入项目 B 和 项目 B 导入项目 A。

我建议您使用 eclipse 并将项目添加为源。你可以在这里阅读如何做到这一点: Creating a java library with Eclipse

您可以在此处阅读有关您将要做的事情的不良做法:

Two java libraries importing each other?

【讨论】:

  • 我无法将主项目导入外部 jar,因为当我创建外部 jar 时,主项目类并不重要。
  • 如果两个项目相互导入,它们也可以是一个项目。正如你所说,这是非常糟糕的做法,可能无法解决任何问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-01
  • 2019-10-11
  • 2011-07-01
  • 2012-08-26
  • 2015-08-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多