2012-11-02 95 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