在另一个项目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()方法时。

要解决上述exception,我们需要:

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

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

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

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

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

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