在另一个项目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调用方法,首先需要该类的实例。
因此,在您的代码中,您需要执行以下操作:
-
获取实例:
MyClass instanceOfMyClass = MyClass.getInstance();
-
调用方法:
instanceOfMyClass.someFunction(…);
这意味着当你调用getInstance()时,如果这样的实例已经存在,它将返回MyClass的实例,或者如果没有实例,它将创建一个新的实例。 获取类的实例后,如果它们具有适当的访问修饰符,则只需调用它的方法即可。
根据java doc java.lang.classNotFoundException有以下几种情况:
- 当我们尝试使用MyClass.someMethod()方法加载类时,MyClass在类路径中不可用。
- 当Classloader尝试使用findSystemClass()方法加载类时。
- 在Java中使用类ClassLoader的loadClass()方法时。
要解决上述exception,我们需要:
-
首先找出存在有问题的类文件的jar文件,例如“com.mysql.jdbc.driver”的mysql-connector-java.jar。 如果您不知道如何找到特定类的jar文件,您只需在Eclipse中执行“Ctrl + T”并键入类的名称,它将按照它们在eclipse类路径中出现的顺序列出所有jar。
-
检查您的类路径是否包含该jar,如果您的类路径不包含jar,则只需在类路径中添加该类。
-
如果它存在于您的类路径中,那么很有可能您的类路径被覆盖,或者应用程序正在使用jar文件或启动脚本中指定的类路径,并修复您需要找到应用程序使用的确切类路径。
如果B在同一工作空间中并打开alos,则必须在“Projects”中输入int而不是“Source”。 如果你想让A“更”独立,你必须导出B.jar并将其添加到“Libraries”
还要考虑使用maven 。 如果您有多模块项目,它非常有用。 只需添加abother项目的依赖项,maven将负责rest..!
创建项目“A”作为jar并在项目“B”构建路径中添加此jar。然后您可以调用所需的类并使用calss名称导入该类包名称。