繁体   English   中英

在另一个项目Eclipse中调用一个类

[英]calling a class in another project Eclipse

我有一个项目“A”,我需要从另一个项目“B”调用一个类“c”。

我做了以下事情。 单击“A” - >“属性” - >“构建路径” - >在Java Source的一个选项卡中,我选择了项目B. - > Accept

现在我可以创建类“c”的objets但是当我运行项目时,我得到“ClassNotFoundException”

更新,

我一直得到java.lang.ClassNotFoundException。

在“JSF” - >属性 - >构建路径 - >项目--->我添加了项目:

在此输入图像描述

在运行 - >运行配置 - > ClassPath我有:

在此输入图像描述

现在我添加了项目“JIRA”和“JIRA依赖项” 在此输入图像描述

JIRA项目有这种依赖关系:

在此输入图像描述

我收到以下错误:

在此输入图像描述

但是这个课程在M2_REPO中:

在此输入图像描述

我只在没有Maven的JAR中添加“JIRA依赖项”: 在此输入图像描述 现在它已经运行了。

您应该在“项目”选项卡中添加另一个项目,或者在“库”选项卡中添加项目的类文件夹。

例

您需要将项目B添加到项目A使用的运行配置中。在菜单运行 - >运行配置...中,在运行配置的“类路径”选项卡中添加项目B.

将Project B放在Build路径上,然后从Project Menu选项中执行Clean项目...然后使用它..

-

Click in "A" -->Properties -->Build Path --> Projects ---> Add the Project --->Ok

为了从Java中的Classes调用方法,首先需要该类的实例。

因此,在您的代码中,您需要执行以下操作:

  1. 获取实例:

    MyClass instanceOfMyClass = MyClass.getInstance();

  2. 调用方法:

    instanceOfMyClass.someFunction(...);

这意味着当你调用getInstance()时,如果这样的实例已经存在,它将返回MyClass的实例,或者如果没有实例,它将创建一个新的实例。 获取类的实例后,如果它们具有适当的访问修饰符,则只需调用它的方法。

根据java doc,java.lang.classNotFoundException有以下几种情况:

  1. 当我们尝试使用MyClass.someMethod()方法加载类时,MyClass在类路径中不可用。
  2. 当Classloader尝试使用findSystemClass()方法加载类时。
  3. 在Java中使用类ClassLoader的loadClass()方法时。

要解决上述异常,我们需要:

  1. 首先找出存在有问题的类文件的jar文件,例如“com.mysql.jdbc.driver”的mysql-connector-java.jar。 如果您不知道如何找到特定类的jar文件,您只需在Eclipse中执行“Ctrl + T”并键入类的名称,它将按照它们在eclipse类路径中出现的顺序列出所有jar。

  2. 检查您的类路径是否包含该jar,如果您的类路径不包含jar,则只需在类路径中添加该类。

  3. 如果它存在于您的类路径中,则很有可能您的类路径被覆盖,或者应用程序正在使用jar文件或启动脚本中指定的类路径,并修复您需要找到应用程序使用的确切类路径。

如果B在同一个工作区并且打开了alos,则必须将int放在“Projects”中,而不是“Source”。 如果你想让A“更”独立,你必须导出B.jar并将其添加到“Libraries”

还要考虑使用maven 如果您有多模块项目,它非常有用。 只需添加abother项目的依赖项,maven将负责休息..!

创建项目“A”作为jar并在项目“B”构建路径中添加此jar。然后您可以调用所需的类并使用calss名称导入该类包名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM