所以我有这个用于学习目的的小型 Java 项目,我正在学习如何从其他 Java 文件调用函数并通过导入引用它们。在 Windows 中一切正常,我对此很满意,但我只是尝试使用 Fedora 和 Ubuntu 在同一个项目中工作,但似乎导入和包引用不起作用。
我在尝试编译主 Java 文件时遇到了这个问题:
$ javac Ejercicio01.java
Ejercicio01.java:3: error: package actividad05.introduceDatos does not exist
import static actividad05.introduceDatos.Pregunta.*;
^
Ejercicio01.java:4: error: package actividad05.operaciones does not exist
import static actividad05.operaciones.Valores.*;
^
Ejercicio01.java:5: error: package actividad05.operaciones.algebraicas does not exist
import static actividad05.operaciones.algebraicas.Operaciones.*;
^
Ejercicio01.java:6: error: package actividad05.operaciones.geometricas does not exist
import static actividad05.operaciones.geometricas.Operaciones.*;
^
Ejercicio01.java:13: error: cannot find symbol
opcion = pideEntero("\nElija una opcion:"
^
symbol: method pideEntero(String)
location: class Ejercicio01
Ejercicio01.java:25: error: cannot find symbol
muestraPi();
^
symbol: method muestraPi()
location: class Ejercicio01
Ejercicio01.java:28: error: cannot find symbol
muestraValorAleatorio();
^
symbol: method muestraValorAleatorio()
location: class Ejercicio01
Ejercicio01.java:31: error: cannot find symbol
double num = pideDouble("Introduzca un valor: ");
^
symbol: method pideDouble(String)
location: class Ejercicio01
Ejercicio01.java:32: error: cannot find symbol
muestraSeno(num);
^
symbol: method muestraSeno(double)
location: class Ejercicio01
Ejercicio01.java:35: error: cannot find symbol
num = pideDouble("Introduzca un valor: ");
^
symbol: method pideDouble(String)
location: class Ejercicio01
Ejercicio01.java:36: error: cannot find symbol
muestraCoseno(num);
^
symbol: method muestraCoseno(double)
location: class Ejercicio01
Ejercicio01.java:39: error: cannot find symbol
muestraRaizCuadrada();
^
symbol: method muestraRaizCuadrada()
location: class Ejercicio01
Ejercicio01.java:42: error: cannot find symbol
double base = pideDouble("Introduzca base: ");
^
symbol: method pideDouble(String)
location: class Ejercicio01
Ejercicio01.java:43: error: cannot find symbol
double exp = pideDouble("Introduzca exponente: ");
^
symbol: method pideDouble(String)
location: class Ejercicio01
Ejercicio01.java:44: error: cannot find symbol
calculaPotencia(base, exp);
^
symbol: method calculaPotencia(double,double)
location: class Ejercicio01
15 errors
我的主 Java 文件引用了其他函数,如下所示:
package actividad05.main;
import static actividad05.introduceDatos.Pregunta.*;
import static actividad05.operaciones.Valores.*;
import static actividad05.operaciones.algebraicas.Operaciones.*;
import static actividad05.operaciones.geometricas.Operaciones.*;
public class Ejercicio01 {
意思是Ejercicio01.java在src/actividad05/main文件夹下,导入的函数在src/actividad05/introduceDatos/Pregunta.java etc等
我的第一个想法是这可能是一个类路径问题。检查您的源代码在哪里(.java 文件)以及将它们编译到哪里(.class 文件)。然后检查你是如何尝试运行应用程序的,是所有 .class 文件在类路径上的位置吗?在这种情况下,它与操作系统差异无关,而是与编译和执行命令以及文件位置有关。
在另一个操作系统上运行编译代码时有时会出现的问题是 JDK 或 JRE 具有不同的供应商或版本。您使用的是 Oracle 还是 OpenJDK?哪个版本?如果版本不同,甚至编译可能会因为某些 Java 特性不同而遇到麻烦。
但是上面的输出指向了第一个问题的方向。
编辑:找不到包的问题可能意味着您在与包名称匹配的目录下没有 .java 文件,或者您没有在根包(源目录)上调用编译器.
退房:https://www.webucator.com/how-to/how-compile-packages-java.cfm