java - 如果设置了类路径,如何修复 "main class not found"错误?

标签 java ubuntu jar classpath

我有以下 Java 应用程序结构:

  • 项目名称:GoodManagement
  • 主包:goodmanagement
  • 主类路径:goodmanagement.GoodManagementLauncher

我在 Windows 上使用 NetBeans 构建应用程序。 在 Windows 上启动时,应用程序可以完美启动。这同样适用于在 Windows 上启动 jar。

将 jar 复制到 Raspberry Pi 2(适用于 ARM32 v7 的 Oracle JDK 8)上的 Ubuntu Mate 时,我无法使用 java -jar GoodManagement.jar 启动该 jar。 它告诉我无法找到或加载主类。

我尝试了以下方法但没有成功:

  1. 使用 export CLASSPATH=., CLASSPATH=.:[PATH TO CLASSES FOLDER] 设置 CLASSPATH 变量 ($CLASSPATH)。
  2. 像上面一样使用 -cp 或 -classpath 设置类路径。
  3. 使用 jar 文件的绝对路径作为 -classpath。
  4. 使用类文件夹的路径(如 1. 中所示),然后使用完全限定的类名称 (goodmanagement.GoodManagementLauncher)

那么我该怎么做才能在 Ubuntu 上启动我的应用程序呢?

编辑1: 构建应用程序的输出:

ant -f D:\\Documents\\Fachschaft\\GoodManagement\\GoodManagement jfx-rebuild
init:
deps-clean:
Updating property file: D:\Documents\Fachschaft\GoodManagement\GoodManagement\build\built-clean.properties
Deleting directory D:\Documents\Fachschaft\GoodManagement\GoodManagement\build
clean:
init:
deps-jar:
Created dir: D:\Documents\Fachschaft\GoodManagement\GoodManagement\build
Updating property file: D:\Documents\Fachschaft\GoodManagement\GoodManagement\build\built-jar.properties
Created dir: D:\Documents\Fachschaft\GoodManagement\GoodManagement\build\classes
Created dir: D:\Documents\Fachschaft\GoodManagement\GoodManagement\build\empty
Created dir: D:\Documents\Fachschaft\GoodManagement\GoodManagement\build\generated-sources\ap-source-output
Compiling 39 source files to D:\Documents\Fachschaft\GoodManagement\GoodManagement\build\classes
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Copying 12 files to D:\Documents\Fachschaft\GoodManagement\GoodManagement\build\classes
compile:
Created dir: D:\Documents\Fachschaft\GoodManagement\GoodManagement\dist
Detected JavaFX Ant API version 1.3
Launching <fx:jar> task from C:\Program Files\Java\jdk1.8.0_51\jre\..\lib\ant-javafx.jar
Warning: From JDK7u25 the Codebase manifest attribute should be used to restrict JAR repurposing.
Please set manifest.custom.codebase property to override the current default non-secure value '*'.
Launching <fx:deploy> task from C:\Program Files\Java\jdk1.8.0_51\jre\..\lib\ant-javafx.jar
jfx-deployment-script:
jfx-deployment:
jar:
jfx-rebuild:
BUILD SUCCESSFUL (total time: 6 seconds)

现在是 list 文件:

Manifest-Version: 1.0
Implementation-Title: GoodManagement
Implementation-Version: 1.0
Permissions: sandbox
Codebase: *
JavaFX-Version: 8.0
Class-Path: 
Created-By: JavaFX Packager
Implementation-Vendor: Daniel
Main-Class: goodmanagement.GoodManagementLauncher

最佳答案

问题是我试图在不支持 JavaFX (arm32 jdk1.8.60) 的虚拟机中运行 JavaFX 应用程序。 当尝试编译源代码时,我发现编译器无法找到 JavaFX 类。

关于java - 如果设置了类路径,如何修复 "main class not found"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32658474/

相关文章:

java - 根据模式验证 XML - 找不到元素声明

java - jackson 键/值对的序列化?

linux - 与 CakePHP 的符号链接(symbolic link)

c++ - 如何在带有 C++ 的 Ubuntu 中使用 wmi

java - 将 Maven 应用程序打包到单个 jar 中 - 但有异常(exception)

java - OSGI - 处理 bundle 所需的第 3 方 JAR

java - Jar 与 Java 8 的兼容性

java - Hazelcast 专用节点

ubuntu - 从 Pyspark 访问 HDFS 失败

java - 将 Java jar 中文本文件的路径传递给 C 库?