-1

私は以下を実装しようとしています:

 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 < aまたはjava 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)
4

3 に答える 3

0

コンパイル時ではなく、実行時に引数を渡します。

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

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

Javaランタイムは、コンパイルされていないソースではなく、提供された名前の.classバイトコード生成を実行します.java

于 2012-11-02T06:05:25.147 に答える
0

コンパイルの際、Javaファイルにパッケージが含まれている場合は、br.com.xxx.main.javaなどを適用する必要があります。それが問題のないJavaファイルへのパスである場合。エラーを投稿できますか?

于 2012-11-02T06:05:34.023 に答える
0

Java プログラムの実行は、2 段階のプロセスです。まず、.javaファイルがファイルにコンパイルされ.classます。次に、javaコマンドを使用してクラス ファイルを実行します。実行時引数は、 を呼び出すときに実行時に渡す必要があることは明らかですjava

于 2012-11-02T06:01:30.020 に答える