2012-11-02 114 views
-1

讀取參數我想實現以下:從Java終端

public class Main { 
    public static void main(String[] args) { 
    //READ FILE IN 
     String filename = args[0]; 
     System.out.println(filename); 
     }} 

編譯沒有問題,但是當我嘗試例如運行java br/com/seimos/minijava/Main.java < ajava br/com/seimos/minijava/Main.java a,我得到一個錯誤。爲什麼?? (順便說一下,我需要得到它,這樣我可以做java br/xx/xx.../xx

感謝

編輯:!對不起,我輸入錯了最初我並運行javajavac

錯誤。我得到的是:。

Exception in thread "main" java.lang.NoClassDefFoundError: br/com/seimos/minijava/Main/java 
Caused by: java.lang.ClassNotFoundException: br.com.seimos.minijava.Main.java 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
+0

對於運行,請使用命令java代替javac並放置類名稱,而不是java文件 - > java br.com.seimos.minijava.Main如果您的軟件包是br.com.seimos.minijava – Chuidiang

回答

0

您不通過參數編譯時,但在運行時

javac --> compiles your Java program 
java --> runs the generated bytecode 

java br/com/seimos/minijava/Main.java -args 
           ^remove (.java) 

Java運行時運行的.class字節碼生成的,這是所提供的名字,而不是未編譯.java

+0

這是一個錯字!我在實際的東西中鍵入了'java'。對不起, – pauliwago

+1

你仍在執行'java ...../Main.java'。它應該是'java ..../Main'。 –

+1

謝謝....我簡直不敢相信。我很抱歉......整晚都在編碼,我沒有聽清楚。 – pauliwago

0

運行Java程序是一個兩步的過程首先.java文件編譯成.class文件,然後使用java命令前執行類文件。在調用java時,顯然必須在運行時傳遞運行時參數。

+0

對不起。這是一個錯字。我在實際的東西里輸入了'java' – pauliwago

0

爲編譯,如果Java文件與一些包,你需要申請如br.com.xxx.main.java。如果這只是確定的java文件的路徑。你能發佈錯誤嗎?

+0

對不起,是一個錯字! – pauliwago

+0

我在實際的東西里輸入了'java' – pauliwago