Sono nuovo di Java e ho cercato sul Web soluzioni ma nessuna sembra funzionare. Mi aiuti per favore.Importa classe Java personalizzata
Ho due file. Uno di questi è il file java che contiene la funzione principale. In esso:
...
VaporVisitor visitor = new VaporVisitor();
...
Con questo comando, voglio creare un nuovo oggetto VaporVisitor
, che è una classe in un file separato chiamato VaporVisitor.java
. Tuttavia Java non riconosce cosa sia VaporVisitor, presumibilmente perché non sa che esiste VaporVisitor.java
(è nella stessa directory). Ho provato a renderli parte dello stesso pacchetto, in diversi pacchetti e importazione ... e tutti hanno fallito. Qualcuno può darmi qualche consiglio?
Grazie!
EDIT: Ecco esattamente cosa sto facendo e il messaggio di errore che ottengo: Quindi ho 3 file. V2VM (con la mia funzione principale), VaporVisitor e un file jar fornito con diverse classi personalizzate. Il file jar non mi sta dando problemi; sta cercando di fare in modo che java riconosca VaporVisitor.
Quindi in V2VM (la funzione principale), ho provato a inserire: import V2VM.java;
che non ha funzionato. Ho provato a inserire V2VM in una sottocartella chiamata vv, aggiunto package vv;
a VaporVisitor e inserito in V2VM.java import vv.*
ma non ha funzionato neanche.
Per la compilazione, ho cercato javac -classpath [the jar file].jar V2VM.java
Gli errori che mi dà:
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();
^
Quando eseguo javacc
Io sono nella stessa directory V2VM, che è anche il luogo dove si trovano gli altri due file . Ho provato a mettere V2VM e VaporVisitor nello stesso pacchetto, ma anche questo non ha funzionato. Così non fanno parte di qualsiasi pacchetto ora ...
EDIT 2: CODICE SORGENTE DI VaporVisitor e 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){
...
}
Per VaporVisitor.java:
package vv;
public class VaporVisitor extends VInstr.VisitorPR<Parameter_Type, Return_Type, RuntimeException>{
....
}
Tutti i 3 file si trovano nella stessa directory vv
Come state compilando? (Un IDE normalmente ordinerebbe tutto questo per te, per esempio.) –
Come si compila quelle classi. Mostraci le directory in cui sono posizionati i file, la directory in cui ti trovi e il comando utilizzato per compilare i file. Incolla il messaggio di errore esatto che hai. Dicci in quale pacchetto sono le classi. –
In realtà sto usando il terminale e sto usando 'javac'. Sarebbe bello se potessi capire cosa dovrei fare invece di affidarmi all'IDE se possibile – pauliwago