【问题标题】:Java code worked in Windows but not in Linux (Fedora or Ubuntu)Java 代码在 Windows 中有效,但在 Linux(Fedora 或 Ubuntu)中无效
【发布时间】:2021-06-06 11:43:51
【问题描述】:

所以我有一个小的 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等等等等

【问题讨论】:

    标签: java ubuntu import package fedora


    【解决方案1】:

    我的第一个想法是这可能是一个类路径问题。检查您的源代码在哪里(.java 文件)以及将它们编译到哪里(.class 文件)。然后检查您尝试运行应用程序的方式,类路径上所有 .class 文件的位置是什么?在这种情况下,它与操作系统差异无关,而是与编译和执行命令以及文件位置有关。

    在另一个操作系统上运行编译代码时有时会出现的问题是 JDK 或 JRE 具有不同的供应商或版本。您使用的是 Oracle 还是 OpenJDK?哪个版本?如果版本不同,由于某些Java特性不同,甚至编译也可能会遇到麻烦。

    但上面的输出指向第一个问题的方向。

    编辑:找不到包的问题可能意味着您在与包名称匹配的目录下没有 .java 文件,或者您没有在根包(源目录)上调用编译器.

    查看:https://www.webucator.com/how-to/how-compile-packages-java.cfm

    【讨论】:

      猜你喜欢
      • 2021-02-11
      • 2014-10-23
      • 2012-03-26
      • 1970-01-01
      • 2021-12-09
      • 2020-04-14
      • 2018-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多