私はJavaが初めてで、解決策を求めてWebを見回しましたが、どれもうまくいかないようです。私を助けてください。
私は2つのファイルを持っています。それらの 1 つは、main 関数を含む Java ファイルです。初期化:
...
VaporVisitor visitor = new VaporVisitor();
...
このコマンドを使用して、新しいオブジェクト を作成しますVaporVisitor
。これは、 という別のファイル内のクラスですVaporVisitor.java
。ただし、Java は VaporVisitor が何であるかを認識しません。おそらく、VaporVisitor.java
存在することを認識していないためです (同じディレクトリにある)。それらを同じパッケージの一部にして、別のパッケージに入れてインポートしようとしましたが、すべて失敗しました。誰でも私にガイダンスを与えることができますか?
ありがとう!
編集:これがまさに私がやっていることであり、エラーメッセージが表示されます:したがって、3つのファイルがあります。V2VM (メイン関数を使用)、VaporVisitor、およびいくつかのカスタム クラスを含む提供された jar ファイル。jar ファイルには問題はありません。Java に VaporVisitor を認識させようとしています。
そこで、V2VM (メイン関数) に: を入れてみましたが、うまくいきimport V2VM.java;
ませんでした。V2VM を vv というサブフォルダーにpackage vv;
入れ、VaporVisitor に追加して V2VM.java に入れてみましimport vv.*
たが、どちらもうまくいきませんでした。
コンパイルのために、私は試しましたjavac -classpath [the jar file].jar V2VM.java
それが私に与えるエラー:
V2VM.java:15: cannot find symbol
symbol : class VaporVisitor
location: class V2VM
VaporVisitor visitor = new VaporVisitor();
^
V2VM.java:15: cannot find symbol
symbol : class VaporVisitor
location: class V2VM
VaporVisitor visitor = new VaporVisitor();
^
実行するjavacc
と、V2VM と同じディレクトリにいます。このディレクトリには、他の 2 つのファイルも配置されています。V2VM と VaporVisitor を同じパッケージに入れてみましたが、うまくいきませんでした。したがって、それらは現在どのパッケージにも含まれていません...
編集 2: VaporVisitor と V2VM のソース コード
V2VM.java:
package vv; //whether I put this or not, it doesn't work
//this stuff was provided, and is related to importing contents of the jar file; don't think this is the problem
import cs132.util.ProblemException;
import cs132.vapor.parser.VaporParser;
import cs132.vapor.ast.VaporProgram;
import cs132.vapor.ast.VBuiltIn.Op;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.PrintStream;
import vv.VaporVisitor; //whether I put this or not, it doesn't work
public class V2VM{
public static void main(String [] args){
VaporProgram vp = parseVapor(System.in, System.err);
VaporVisitor visitor = new VaporVisitor();
for(int i=0; i<vp.functions.length; i++){
for(int j=0; j<vp.functions[i].body.length; j++){
vp.functions[i].body[j].accept(parameter, visitor);
}
}
}
public static VaporProgram parseVapor(InputStream in, PrintStream err){
...
}
VaporVisitor.java の場合:
package vv;
public class VaporVisitor extends VInstr.VisitorPR<Parameter_Type, Return_Type, RuntimeException>{
....
}
3 つのファイルはすべて同じディレクトリにあります。vv