2012-04-26 11 views
0

私はLinuxツールをWindowsに移植しています。このツールはLinuxシステムでうまく動作しますが、Windowsではこの "シンボルを見つけることができません"というエラーが表示されます。java import "シンボルが見つかりません"

私はこの小さなメインクラスがあります。

package foo; 

import foo.bar; 

public class Main { 
    public static void main(String[] args) throws Exception { 
     bar.getInstance(); 
    } 
} 

をとjavacのMain.javaやっているときにエラーが、今表示されます:

インポートfoo.barは:クラスのバー:記号 ^ シンボルを見つけることができません 場所:パッケージfoo

Main.javaとbar.javaは同じディレクトリにあります。 私は何が欠けていますか?その意志

javac -d out foo/Main.java foo/Bar.java 

:一つには

+0

javac * .javaを試してみてください同じ結果が得られますか? – scrappedcola

答えて

5

barは慣用的であることをBarと呼ばれるべきである...理想的

、あなたはこのように、Main.java上記のディレクトリからコンパイルする必要がありますMain.classとBar.classを含む別のディレクトリ "foo"を含む "out"というディレクトリを作成します。だから、再び親ディレクトリから、あなたが実行できます。

java -cp out foo.Main 

を元の場所ががパッケージ構造に一致するようにを持っていません。しかし、それはあなたのソースコードに従ってを構築するために、一般的にはるかに良いアイデアだ(以前と同じ方法でそれを実行しますと)

javac -cp out Main.java Bar.java 

:あなたちょうどこのようMain.javaBar.javaを含むディレクトリからのjavacを呼び出すことができますパッケージに。

すべてのコンパイルなどを処理するIDE(EclipseまたはNetBeansなど)を使用する方が簡単です。 の場合、コマンドラインから実際のプロジェクトをビルドしたい場合は、おそらくAntやMavenなどの完全なビルドシステムを使うべきでしょう。

(あなたが同じようにコンパイルしようとした場合、あなたがWindows上とLinux上で同じエラーを取得したいことに注意してください。)

+0

クイックソリューションのThx。 – MindlessMaik

1

私はあなたがfooをコンパイルしようとする前に、適切にクラスのバーをコンパイルする必要があると思いますこれは、適切なパッケージ構造でクラスファイルを生成することです。

関連する問題