“错误:java找不到或无法加载主类(主方法)***”解决方法

本文介绍了在使用Eclipse IDE过程中遇到的一个常见问题:当主方法从内部类移出后,程序无法正常运行并提示找不到主类。通过调整Eclipse的启动配置解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:

在编写内部类时,每当多次实验编写时,总会出现“错误:java找不到或无法加载主类(主方法)***”


但本人已将主方法在StaticInnerClassPractice类中建立,而StaticInnerClassPractice$Inner类是一个内部类,程序修改前曾在内部类中定义main主方法运行成功。但后将主方法拿出内部类后就异常。

解决方法:

从网上搜索错误语句,发现出现这种情况的多为java运行环境没有配置好。我检查了一下本机java运行环境配置,并没有问题。原因并不在这。

然后各种尝试,猜想可能是程序修改前运行时将,发现在eclipse的资源管理器中右击java文件选中属性,进入运行/调试设置,发现是项目的启动配置为StaticInnerClassPractice$Inner。于是将其删除改为StaticInnerClassPractice后程序运行成功!

感悟:

eclipse在每次编译运行程序时可能并不会自动修改启动配置,会一直援用最初的启动配置,导致找不到主程序(类)!
在 Ghidra 启动时出现 **“不到无法加载 LaunchSupport”** 错误,通常是由于 Java 环境配置问题 Ghidra 的启动脚本未能正确识别路径所致。以下是解决此问题的常见方法: ### 1. 检查 Java 环境配置 确保系统中安装了合适的 JDK,并且 `JAVA_HOME` 环境变量已正确设置。Ghidra 要求使用 JDK 11 更高版本[^2]。 可以通过以下命令检查当前 Java 版本: ```bash java -version javac -version ``` 若未正确设置 `JAVA_HOME`,请根据操作系统进行配置: - **Windows**:在系统环境变量中添加 `JAVA_HOME`,指向 JDK 安装目录。 - **Linux/macOS**:在 `.bashrc` `.zshrc` 文件中添加如下内容: ```bash export JAVA_HOME=/usr/lib/jvm/jdk-11-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH ``` ### 2. 清理 Ghidra 缓存文件 有时缓存文件可能导致启动失败。可尝试删除用户目录下的 `.ghidra` 隐藏文件夹(通常位于 `/home/<用户名>/.ghidra` `C:\Users\<用户名>\.ghidra`),然后重新启动 Ghidra [^1]。 ### 3. 修改启动脚本以指定 如果错误提示明确指出不到 `LaunchSupport` ,可以在启动脚本中显式指定路径。编辑 `ghidraRun` 脚本(位于 Ghidra 安装目录下的 `support` 文件夹),似以下的行: ```bash "$JAVA_HOME/bin/java" ${JVM_ARGS} -cp "${CP}" ghidra.GhidraLauncher "$@" ``` 将其替换为显式指定的方式: ```bash "$JAVA_HOME/bin/java" ${JVM_ARGS} -cp "${CP}" ghidra.launch.LaunchSupport "$@" ``` ### 4. 验证路径是否完整 确保 Ghidra 的路径(classpath)包含了所有必要的 JAR 文件和资源。如果某些依赖项缺失,也可能导致加载失败。可以手动检查 `-cp` 参数所引用的路径是否完整且无拼写错误[^2]。 ### 5. 使用调试模式运行 在启动 Ghidra 时加入 `-verbose:class` 参数,可以让 JVM 输出加载的详细信息,有助于排查具体是哪个加载失败: ```bash "$JAVA_HOME/bin/java" -verbose:class -cp "${CP}" ghidra.launch.LaunchSupport "$@" ``` ### 示例修复后的启动命令(Linux) ```bash export JAVA_HOME=/usr/lib/jvm/jdk-11-openjdk-amd64 cd /opt/ghidra_10.1.5_PUBLIC/support ./ghidraRun -cp "/opt/ghidra_10.1.5_PUBLIC/lib/*:/opt/ghidra_10.1.5_PUBLIC/Ghidra/Framework/*" ghidra.launch.LaunchSupport ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值