错误:找不到同一包中类中的符号



我试图在类App中调用类Usuario。它们在相同的包中,相同的文件夹中,但仍然,java编译器找不到类。

**我已经从github的存储库中克隆了代码(不知道这是否有任何区别)。

package code;
import java.util.*;
/**
* App
*/
public class App {
public static void main(String[] args) {

// abre  o scanner
Scanner teclado = new Scanner(System.in);
//inicializa alguns usuarios e departamentos
Usuario user1 = new Usuario("123", "joao", 1);


//variaveis do usuario logado
String id = null;
String nome;
int tipo;
String cargo;

//variavel do fim do programa
boolean fim_do_programa = false;

System.out.println("Sistema de Controle de Aquisicoesn");

while(!fim_do_programa){

if(id == null){
// primeiro acesso deve requerir o login
}

//  input do usuario
System.out.print("Digite o a função desejada: ");
int inputUsuario = teclado.nextInt();


switch(inputUsuario){
case 1 :// Mudar o usuario atual; 
break;
case 0 : System.out.println("Fechando o programa...");fim_do_programa = true; break;          
}
}
}

}

这个例子中的另一个类是"Usuario">

package code;
import java.util.*;
public class Usuario {
private String id;
private Departamento departamento;
private String nome;
private static int countUser = 0;
private int tipo;
private String cargo;

public Usuario(String codigo, String nome, int tipo) {
this.id = codigo;
this.nome = nome;
if (tipo == 1 || tipo == 2) {
this.tipo = tipo;
} else {
System.out.println("ERRO AO CRIAR USUÁRIO " + this.nome + ". Usuário não será criado.n");
this.tipo = 0;
}
countUser++;
}
public String getId() {
return id;
}
public static int getCountUser() {
return countUser;
}
public String getNome() {
return nome;
}
public int getTipo() {
return tipo;
}
public String getCargo() {
if (this.tipo == 1) {
this.cargo = "funcionário";
return this.cargo;
} else if (this.tipo == 2) {
this.cargo = "administrador";
return this.cargo;
} else {
this.cargo = null;
return this.cargo;
}
}
@Override
public String toString() {
return "Usuario [cargo=" + cargo + ", departamento=" + departamento.getDepartamento() + ", id=" + id + ", nome="
+ nome + "]";
}
}

当我尝试编译代码时,这个错误一直显示

PS C:UsersthomaOneDriveÁrea de TrabalhoTrabalhoGtrabalhoGCS-PUCRScode> javac App.java
App.java:14: error: cannot find symbol
Usuario user1 = new Usuario("123", "joao", 1);
^
symbol:   class Usuario
location: class App
App.java:14: error: cannot find symbol
Usuario user1 = new Usuario("123", "joao", 1);
^
symbol:   class Usuario
location: class App
2 errors

我想你只是编译错误。

  1. 确保App.java,Usuario.javaDepartamento.java都在名为code的目录下。这是包的名称。

  2. 将目录更改为code目录上面的目录

  3. 编译如下:

    javac -cp . code/App.java
    

如果classpath/sourcepath是正确的,那么Java编译器将找到先前编译过的类和您正在编译的类(例如code/App.java)所依赖的任何类的源文件。如果同时找到源版本和编译版本(.class),则使用较新的版本。这意味着要重新编译较新的源文件。所以…在你的例子中…code/Usario.javacode/Departamento.java应该编译或重新编译。

有关更多信息,请阅读javacjava命令的文档。请特别注意类路径和源路径的描述,以及javac文档中关于"搜索类型"的部分。


话虽如此,对于比这更复杂的东西,你应该毕业使用Java构建工具,如Maven, Gradle或Ant。

相关内容

  • 没有找到相关文章

最新更新