2015-09-09 93 views
-1

我有一個在Eclipse中編程的編程。我需要能夠將項目發送給我的教師,他將使用java.exe從命令行運行它。從Eclipse中使用.class文件使用java.exe

該程序需要參數,我已經在Eclipse中測試了它們,但它們工作正常,但是,當我嘗試使用java.exe來執行位於我的項目的bin文件夾中的main.class文件時,以下錯誤: 錯誤:無法找到或加載主類C:\ Workspace \ Sort \ bin \ Main.class

我的系統上安裝了JRE 1.8.0_60,而不是JDK。但是,無論Eclipse用於編譯,我都應該可以使用。我知道我可以將它作爲JAR導出,但這不屬於任務的一部分,我不認爲JAR文件需要參數。

任何想法?

  1. 使用參數

CMD::java -jar Myapp.jar arg1 arg2

代碼:

+2

jar文件可以帶參數。你如何嘗試調用類文件?您需要編輯您的問題並給我們提供命令行 – Marged

+0

首先,您需要檢查您的jar是否捆綁了bin文件夾中的所有類文件。 –

回答

0

記住的default classpath for java.exe only includes the current working directory。因此,如果您未執行項目文件夾bin/中的java,它將不知道在哪裏找到您的課程。您需要從C:\Workspace\Sort\bin運行或使用-cp選項將該文件夾包含在類路徑中。例如:

java -cp C:\Workspace\Sort\bin Main arg1 

另外請注意,您不應指定類的名稱時,包括.class文件擴展名。

+0

謝謝。那是我的問題。我在編譯的代碼中添加了'.class',並且它沒有運行。一旦我刪除了它,它效果很好。 –

0

執行罐子時,可以發送參數

public static void main(String[] args) { 
    //args[0] = arg1 
    //args[1] = arg2 
} 
  • 使用參數:
  • CMD:java -Darg1_name=arg1 -Darg2_name=arg2 -jar Myapp.jar

    代碼:

    public static void main(String[] args) { 
        //System.getProperty("arg1_name") = arg1 
        //System.getProperty("arg2_name") = arg2 
    } 
    
    +0

    謝謝,但我想把它寫成: cmd:'java.exe Main.class arg1' –