2012-10-15 54 views
1

我正在用BlueJ學習java,最近我給了一個名爲Imagen.jar的.jar文件。顯然,它所做的是根據作爲參數給出的圖像文件名返回一些像素矢量。如何編譯在BlueJ中使用.jar文件類的代碼?

無論如何,我應該做一個程序,將使用一個叫做Imagen的類。顯然,這樣的課程在上述.jar文件中。

顯然,如果我使用這樣的類,BlueJ將無法編譯,因爲我沒有導入它或任何東西。但是,我並不知道如何首先導入這樣的類。

我得到了下面的示例代碼:

import java.io.PrintWriter; 

public class Main { 
    public static void main(String arg[ ]){ 
     if(arg.length > 1){ 
     Imagen imagen = new Imagen(arg[0]); 
     int [][] m = imagen.getMatriz(); 
     PrintWriter salida = null; 
     try { 
      salida = new PrintWriter(arg[1]); 
     } 
     catch(Exception e){ 
      System.err.println(e); 
     } 
     for(int [] fila : m){ 
      for(int valor : fila){ 
       System.out.print("\t"+valor); 
       salida.print("\t"+valor); 
      } 
      salida.println(""); 
      System.out.println(""); 
     } 
     if(salida!=null){ 
      salida.close(); 
     } 
     } 
     else { 
     System.out.println("Uso: java -classpath .;Imagen.jar Main nombreArchivo.gif"); 
     } 
    } 
} 

它不利用BlueJ的編譯。然而,正如你所看到的,在最後它說,使用它,你必須在終端輸入:

java -classpath .;Imagen.jar Main myImageFile.gif 

而且我做到這一點。但它一直在向我拋出同樣的信息。

所以我堅持現在:

  • 爲什麼終端線路有人告訴我用不工作?
  • 如何導入包含在.jar文件中的類?
+1

「但它一直給我留下相同的信息」。請告訴我們錯誤信息的內容。 – ReyCharles

+0

@ReyCharles:消息是*「Uso:java -classpath。; Imagen.jar Main nombreArchivo.gif」* – Voldemort

+0

在這種情況下,它似乎能正常工作。你只是沒有提供一個參數(這似乎是一個.gif文件)的程序。 – ReyCharles

回答

2

您需要執行以下操作一次。

選擇菜單選項工具 - >首選項。 在出現的對話框中,單擊Libraries選項卡。

enter image description here

單擊Add按鈕。 導航到包含jar文件的文件夾。選擇jar文件。 重新啓動BlueJ。

Answer extracted from this place

+0

它完美的作品。當然,如果對發生的事情和原因有更深入的解釋,我們將會感激不盡,但謝謝。 – Voldemort

+0

您正在告訴IDE關於它必須具有的外部jar的類路徑,以便您的類可以找到它們。在設置項目的構建配置時,您也可以在Eclipse中執行相同的操作,添加外部容器或將項目與其他項目相關聯。 –

-1

您需要導入Imagen類,因爲它正在主要方法中使用。

+0

但是,當我做*導入Imagen; * BlueJ會告訴我**「'。'預期「** – Voldemort

+0

導入 .Imagen。您應該爲Imagen類提供完全限定的包名稱。 – Amareswar

+0

什麼是*包名*? (並感謝您的快速響應!) – Voldemort