2014-01-21 44 views
8
import ... 

public class TriggerJob { 

    String jobStatus = ""; 
    SchedulerMetaData metaData = null; 

    public void rightNow(HashMap ParamMap){ 

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

} 
} 
+2

我有兩個不同的項目, 我想調用另一個項目的Java類。 我已幫助... http:// stackoverflow。com/questions/11792812 /在另一個項目中調用這個鏈接 - 這個鏈接 –

+1

是的,你可以。我現在無法輕鬆制定一個簡單的答案,但肯定有人可以。 – Fabinout

+0

@MitulMaheshwari根據您的鏈接,我試圖將class_from_project_B導入到class_from_project_A中,但出現錯誤導入無法解析。 – vikramvi

回答

8

您可以執行這種方式:

在您可以將其他項目添加到項目的依賴。右鍵點擊project - > properties - > java build path - > projects。在這裏添加你的項目。

OR

使項目的類到罐子並將其添加到其他項目

依賴關係應該在classpath中

在運行時被添加,確保在這兩種情況下,被引用項目的JAR文件是在類路徑中添加的 。

+3

編譯時間沒問題。但它在運行時失敗(NoClassDefFoundError)。如何避免它? –

+0

@SudheerKumar你找到了你的疑問的答案嗎? – Kode

0

您可以通過兩種方式來完成。
將其他項目導出到jar並將jar導入到您的項目中。

OR

在依賴您可以將其他項目添加到您的項目。 Right click on project --> properties --> java build path --> projects。在此處添加項目

+0

我有試過這種方式。但仍然無法工作, 你能給我任何其他方式,我可以解決我的問題..? –

+0

您已經接受了答案。沒關係,它是不可能的,除非其他項目中的類不公開 –

0

您必須打開項目屬性,然後選擇「Java Build Path」並選擇「項目」選項卡。添加您想從中導入類的項目並重建。

1

充分利用project A into jar的類,並將其添加到其他project B

+0

我已經在項目A中添加了項目B的java構建路徑。 好吧...我會嘗試添加項目B的jar項目 –

+0

@ MitulMaheshwari所有最好的 – Nambi

+0

它不工作,仍然給類沒有發現錯誤, 我已經添加了jar項目B. –

0

的類路徑這隻要您導入包含類的項目工作正常。您使用Eclipse

假設下面的步驟將工作:

  1. 右鍵單擊>項目
  2. 單擊項目屬性
  3. 單擊Java構建路徑
  4. 單擊項目選項卡
  5. 點擊添加按鈕
  6. 選擇項目
  7. 單擊確定
+0

是的,我做了同樣的方式兄弟,堅果它給類沒有發現異常 –

+0

你可以建議我任何其他方式來做到這一點..? –

0

是的。在Project Explorer中右鍵單擊它並選擇屬性,有去 Java構建路徑並選擇項目標籤。在這裏添加你的其他項目,現在你可以在當前項目中使用它。但是當你在eclipse中運行它們或者在eclipse中進行調試時,注意都必須是開放的(否則你會看到紅線告訴你沒有找到類)。

+0

我已經做了同樣的方法, 但它給我沒有發現類異常。 –

+0

你們有兩個項目嗎? – kacpr

2

我已經在我的項目做過這樣的:

ClientResponse response=WebServiceClient.invokeGRODService("document","get",documentId); 
  • invokeGRODService()是URL被提及WebServiceClient此類類中的方法。
  • 「文檔」是方法級別的路徑,「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」。我通過AppProperties從常量中獲得了它。

ClientResponse響應= service.path(classLevelPath)。路徑(methodLevelPath).TYPE(MediaType.APPLICATION_XML).POST(ClientResponse.class, 請求);

  • 如果URL是正確的,你應該在狀態200(OK)響應對象中獲取數據。
+0

我也想在我的項目中使用這種方式, ,但它找不到類。 –

+0

確保兩個項目都處於運行模式。 – pan1490

+0

是的,這兩個項目都在工作,但仍然得到一個錯誤「class not found error」 –

5

知道你使用Eclipse的任何版本,下面的步驟應該可以幫助您:

第1步。右鍵單擊=>項目

步驟#2。點擊項目屬性

步驟#3。點擊Java構建路徑

步驟#4。單擊項目選項卡

步驟#5。點擊添加按鈕

步驟#6。選擇您要添加的項目

步驟#7。單擊OK按鈕

希望這幫助。

+0

好的工作GordonF – Dev4World

0

我也有類似的問題,我終於意識到問題是,在調用工程類不src文件夾下,而另一內包裝內。當我刪除該文件夾並將文件移動到src文件夾時,一切正常。

相關問題