Java从终端读取参数

时间:2012-11-02 05:56:39

标签: 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

谢谢!

编辑:抱歉,我最初打错了。我执行java而不是javac

我得到的错误是:

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)

3 个答案:

答案 0 :(得分:0)

运行Java程序分为两步。首先,.java文件被编译为.class个文件。然后使用java命令执行类文件。显然,当您调用java时,运行时参数必须在运行时传递。

答案 1 :(得分:0)

您不会在编译时传递参数,而是在运行时传递参数。

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

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

Java运行时运行生成的 .class 字节码,它是提供的名称,而不是未编译的.java

答案 2 :(得分:0)

对于编译,如果java文件包含某个包,则需要应用br.com.xxx.main.java。如果那只是java文件的路径就可以了。你可以发布错误吗?