【问题标题】:Is there a way to access a class from another .jar file in java [duplicate]有没有办法从java中的另一个.jar文件访问一个类[重复]
【发布时间】:2019-12-05 17:18:45
【问题描述】:

所以,假设我有一个名为“a.jar”的 jar 文件和另一个名为“b.jar”的 jar 文件。

在 b.jar 中,我们有一个名为“c.class”的类,在 a.jar 中,我们有一个名为“getmesomething.class”的类,其中包含一个主函数。

我想从“getmesomething.class”访问“c.class”方法和东西。

但我不知道如何从“a.jar/getmesomething.class”中的主函数访问“b.jar/c.class”。

我希望我拼写正确并且不会太混乱。 :-)

【问题讨论】:

  • 你应该看到什么是java类路径。好的答案在这里stackoverflow.com/questions/219585/…
  • 如果你的类路径中有那个 jar,你可以像任何其他 java 类一样将它导入你的 java 文件中。
  • 类路径中列出的所有 jars(和目录)都将用于查找类。但使用java -jar start.jar 启动应用程序时使用的类路径将是该JAR 文件(在其清单文件中)中指定的路径;如果在没有-jar 选项的情况下启动,将使用系统环境CLASSPATH 或使用-cp 选项传递的环境

标签: java class jar


【解决方案1】:

每次编写 java 代码时,您实际上是在使用来自其他 .jar 的类 (import) - 使用来自 jdklibs。附带说明一下,在 java 中,约定是使用大写字母作为类名,因此您可能想要使用:GetSomething.java (.class),或者只是 ABC )

每个.jar 都会有多个packages,所以你唯一要做的就是:

import C

或者,如果 C 类在 package 中:

import package.x.y.C

唯一的限制是在classpath 中同时包含.jars

您可以找到this tutorial 来指导您(通过谷歌搜索找到它:java learn packages and classes

【讨论】:

  • 根本不需要import - 它只是需要避免在使用它的任何地方都写一个类的完全限定名
【解决方案2】:

你可以尝试使用java反编译插件吗? 反编译 .class 文件,然后复制代码并将其添加到您的项目中。 idk,如果你可以使用 .class 文件,因为它已被编码(如果你用 sublime 打开 ir,你将 si 0 & 1 xD)

【讨论】:

  • 您能否在您的答案周围添加更多上下文,例如指向反编译器的链接以及如何使用它们?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-09
  • 1970-01-01
  • 2012-09-17
  • 2014-09-26
  • 1970-01-01
  • 2017-08-18
  • 1970-01-01
相关资源
最近更新 更多