我是Java的新手,我已經瀏覽了網絡尋找解決方案,但似乎沒有任何工作。請幫幫我。導入自定義Java類
我有兩個文件。其中之一是包含主函數的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的子文件夾中,並將其添加到VaporVisitor的package vv;
,並將其放入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
你是如何編譯的? (例如,一個IDE通常會爲你排序所有這些。) –
你如何編譯這些類。向我們展示放置文件的目錄,您所在的目錄以及用於編譯文件的命令。粘貼您的確切錯誤消息。告訴我們這些課程在哪個包裏。 –
我實際上使用終端,只是運行'javac'。如果我能理解我應該做什麼,而不是依賴於IDE,那將會很棒 – pauliwago