【问题标题】:Can we call another project java class from our project in eclipse我们可以在eclipse中从我们的项目中调用另一个项目java类吗
【发布时间】:2014-01-21 10:19:21
【问题描述】:
import ...

public class TriggerJob {

    String jobStatus = "";
    SchedulerMetaData metaData = null;

    public void rightNow(HashMap ParamMap){ 

AnotherProjectClass anp = new AnotherProjectClass();
anp.display();

}
}

【问题讨论】:

  • 我有两个不同的项目,我想从另一个项目中调用一个项目的 java 类。我已经帮助了...stackoverflow.com/questions/11792812/…这个链接
  • 是的,你可以。我现在不能轻易地给出一个简单的答案,但肯定有人可以。
  • @MitulMaheshwari 根据您的链接,我尝试将 class_from_project_B 导入到 class_from_project_A 但出现错误无法解决导入问题。
  • 发现问题;我没有为项目中包含的项目中的类指定任何包。通过stackoverflow.com/questions/2335211/…发现这个问题

标签: java eclipse


【解决方案1】:

你可以这样做:

在依赖项中,您可以将其他项目添加到您的项目中。右键单击项目-> 属性-> java 构建路径-> 项目。在此处添加您的项目。

将项目的类打包成jar并添加到其他项目中

依赖应该添加到类路径中

在运行时,确保引用项目的 JAR 文件是 在这两种情况下都添加到类路径中。

【讨论】:

  • 编译时没问题。但它在运行时(NoClassDefFoundError)对我来说失败了。如何避免?
  • @SudheerKumar 你找到答案了吗?
  • 这不起作用。 “无法解析为类型”。即使我们引用具有此公共类的项目。请添加完整的说明。
【解决方案2】:

知道您使用任何版本的 Eclipse,以下步骤应该对您有所帮助:

第 1 步。 右键单击​​ => 项目

第 2 步。点击项目属性

第 3 步。 点击 Java 构建路径

第 4 步。点击“项目”标签

第 5 步。点击添加按钮

第 6 步。选择您要添加的项目

第 7 步。点击确定按钮

希望对您有所帮助。

【讨论】:

    【解决方案3】:

    我在我的项目中做过这样的事情:

    ClientResponse response=WebServiceClient.invokeGRODService("document","get",documentId);
    
    • invokeGRODService() 是 WebServiceClient 类中提到 URL 的方法。
    • “document”是方法级路径,“get”是类级路径,documentId 是要作为输入传递给其他项目中其他类的参数。
    • invokeGRODService() 如下:

         public static ClientResponse invokeGRODService(String classLevelPath, String methodLevelPath,Object request){
    >           LOGGER.info("invokeGRODService()...Start");
    >           ClientConfig config = new DefaultClientConfig();
    >           Client client = Client.create(config);
    >           WebResource service=null;
    >           try{
    >               service = client.resource(UriBuilder.fromUri(AppProperties.getProperty(AppConstants.GROD_REST_SERVICE_URL)).build());
    >       }catch(PropertyNotFoundException pe){
    >           LOGGER.error("Error getting the--- "+pe);
    >       }
    >       try {
    >           ClientResponse response = service.path(classLevelPath).path(methodLevelPath).type(MediaType.APPLICATION_XML).post(ClientResponse.class,
    > request);
    >           if (response.getClientResponseStatus() != ClientResponse.Status.OK) {
    >               String errorResponse = response.getEntity(String.class);
    >               LOGGER.error("RECEIVED ERROR FROM WEBSERVICE.."+errorResponse);
    >           }
    >           LOGGER.info("invokeGRODService()...End");
    >           return response;
    >       } catch (Exception e) {
    >           LOGGER.error("Error while calling GRoD web service: ",e);
    >       }
    >       return null;
    >     }
    
    • 在“AppConstants.GROD_REST_SERVICE_URL”中提及您的 URL。我通过 AppProperties 将其从常量中取出。

    ClientResponse 响应 = service.path(classLevelPath).path(methodLevelPath).type(MediaType.APPLICATION_XML).post(ClientResponse.class, 请求);

    • 如果 URL 正确,您应该在状态为 200(OK) 的响应对象中获取数据。

    【讨论】:

    • 我也想在我的项目中使用这种方式,但找不到类。
    • 确保两个项目都处于运行模式。
    • 是的,两个项目都在工作,但仍然出现错误“找不到类错误”
    • 然后检查你的网址是否正确。对于该测试,您想通过高级 REST 客户端从另一个项目调用的功能。我认为您的网址错误,这就是您收到“找不到类”错误的原因。
    • 不,@pan1490 我已经尝试通过手动运行来检查 URL,它工作正常。
    【解决方案4】:

    您必须打开项目属性,然后单击“Java 构建路径”并选择选项卡“项目”。添加要从中导入类并进行重建的项目。

    【讨论】:

      【解决方案5】:

      制作project A into jar的类并将其添加到另一个project B的类路径中

      【讨论】:

      • 我已经在项目 A 中添加了项目 B 的 java 构建路径。好吧...我会尝试添加项目 B 的 jar
      • @MitulMaheshwari 一切顺利
      • 它不工作,仍然给出类未找到错误,我已经添加了项目 B 的 jar。
      【解决方案6】:

      只要您导入了包含这些类的项目,它就可以正常工作。

      假设您使用 Eclipse,以下步骤将起作用:

      1. 右键单击>项目
      2. 单击项目属性
      3. 单击 Java 构建路径
      4. 单击“项目”选项卡
      5. 点击添加按钮
      6. 选择项目
      7. 点击确定

      【讨论】:

      • 是的,兄弟我也这样做了,但是它给了类未找到异常
      • 你能建议我用其他方法吗?
      【解决方案7】:

      我也遇到过类似的问题,最后才意识到问题是调用项目中的类不在src文件夹下,而是在另一个内包里面。当我删除该文件夹并将文件移动到 src 文件夹时,一切正常。

      【讨论】:

        【解决方案8】:

        您可以通过 2 种方式做到这一点。
        将另一个项目导出到jar,并将jar导入您的项目中。

        在依赖项中,您可以将其他项目添加到您的项目中。 Right click on project --> properties --> java build path --> projects。在此处添加您的项目

        【讨论】:

        • 我已经尝试过这种方式。但它仍然无法工作,你能给我任何其他方法来解决我的问题吗..?
        • 您已经接受了一个答案。没关系,除非其他项目中的类不公开,否则它不可能不工作
        【解决方案9】:

        是的。在 Project Explorer 中右键单击它并选择 Properties,然后转到 Java Build Path 并选择 Projects 选项卡。在此处添加您的其他项目,现在您可以在当前项目中使用其中的类。但请注意,当您在 Eclipse 中运行或调试时,两者都必须打开(否则您会看到红线告诉您找不到类)。

        【讨论】:

        • 我做了同样的方法,但它给了我类未找到异常。
        • 两个项目都打开了吗?
        猜你喜欢
        • 2013-10-30
        • 2017-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多