我是新来的Java,我已经在网上解决办法环顾四周,但没有似乎工作。 请帮我。
我有两个文件。 其中之一是,它包含的主要功能的Java文件。 在里面:
...
VaporVisitor visitor = new VaporVisitor();
...
有了这个命令,我想创建一个新的对象VaporVisitor
,这是被称为一个独立的文件中的类VaporVisitor.java
。 但是,Java不承认VaporVisitor是什么,大概是因为它不知道VaporVisitor.java
存在(它是在同一目录)。 我试图让他们在同一包的一部分,在不同的封装和进口......和他们都失败了。 谁能给我任何指导?
谢谢!
编辑:这正是我在做什么,以及错误消息我得到:所以我有3个文件。 V2VM(我的主要功能),VaporVisitor,而且有几个自定义类提供的jar文件。 该jar文件是不是给我任何问题; 它试图获取Java承认VaporVisitor。
因此,在V2VM(main函数),我已经试过投入: 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,这也是在其他两个文件的位置。 我试图把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