如果设置了类路径,如何修复 "main class not found" 错误?
How to fix the "main class not found" error if classpath is set?
我有以下 Java 应用程序结构:
- 项目名称:
GoodManagement
- 主包:
goodmanagement
- 主要 class 路径:
goodmanagement.GoodManagementLauncher
我在 Windows 上使用 NetBeans 构建应用程序。
在 Windows 上启动时,应用程序完美启动。这同样适用于在 Windows.
上启动 jar
将 jar 复制到 Ubuntu Mate on my Raspberry Pi 2(Oracle JDK 8 for ARM32 v7)时,我无法使用 java -jar GoodManagement.jar
启动 jar。
它告诉我无法找到或加载主要 class。
我尝试了以下但没有成功:
- 设置
CLASSPATH
变量 ($CLASSPATH
) export CLASSPATH=., CLASSPATH=.:[PATH TO 类 FOLDER].
- 像上面那样使用 -cp 或 -classpath 设置 classpath。
- 使用jar文件的绝对路径作为-classpath.
- 使用 classes 文件夹的路径(如 1.),然后使用完全限定的 class 名称 (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)
现在是清单文件:
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) 的 VM 中 运行 JavaFX 应用程序。
在尝试编译源代码时,我发现编译器无法找到 JavaFX 类.
我有以下 Java 应用程序结构:
- 项目名称:
GoodManagement
- 主包:
goodmanagement
- 主要 class 路径:
goodmanagement.GoodManagementLauncher
我在 Windows 上使用 NetBeans 构建应用程序。 在 Windows 上启动时,应用程序完美启动。这同样适用于在 Windows.
上启动 jar将 jar 复制到 Ubuntu Mate on my Raspberry Pi 2(Oracle JDK 8 for ARM32 v7)时,我无法使用 java -jar GoodManagement.jar
启动 jar。
它告诉我无法找到或加载主要 class。
我尝试了以下但没有成功:
- 设置
CLASSPATH
变量 ($CLASSPATH
) export CLASSPATH=., CLASSPATH=.:[PATH TO 类 FOLDER]. - 像上面那样使用 -cp 或 -classpath 设置 classpath。
- 使用jar文件的绝对路径作为-classpath.
- 使用 classes 文件夹的路径(如 1.),然后使用完全限定的 class 名称 (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)
现在是清单文件:
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) 的 VM 中 运行 JavaFX 应用程序。 在尝试编译源代码时,我发现编译器无法找到 JavaFX 类.