• 解决 java命令行运行class文件时报“错误:找不到或无法加载主类”


    问题描述:

    今天准备开始复习一下jvm参数,在 perfma 社区里正好有这么一个小课程:https://club.perfma.com/course

    从第一节开始复习时,大佬在课后留了一个问题,所以最好自己在java命令行中运行验证一下。结果没想到就碰到了“错误:找不到或无法加载主类”这个问题。

    程序都没运行起来,怎么验证jvm参数啊???

    于是前后耗时2H(google搜索相关有用的知识点+笔记整理),终于解决了。

    笔记总结如下:

    解决思路:

    google搜了一圈,整体看下来,每篇用的文字都比我最后做的总结多,而且总感觉说不到点上,或者说不全。

    于是开始自己尝试分析:

    1. 先从IDE里找找灵感:既然IDE能运行成功,那么就从它开始入手。在intellij idea里运行了程序后,查看run窗口,发现使用了 -classpath 命令,并且文件名使用了“全限定类名”。

    2. 在(1)的发现中,全限定类名 和 -classpath(缩写-cp)是两个关键的发现。顺藤摸瓜,经过一番思考后(two hours later......)联想到“文件的绝对路径”。并且再次验证idea中run窗口,(使用ctrl+F再次搜索发现)-classpath 中出现了自己项目的路径,证实了这点。

    3. 根据前面2点,总结成文。

    后记:

    至于 classpath 和 全限定类名 之间有什么关系,大家就得回忆下java package的命名空间规则了。属于相当基础的内容,不再赘述啦~

  • 相关阅读:
    python数据结构之树(二叉树的遍历)
    python数据结构之树(概述)
    python面向对象高级:定制类
    python面向对象高级:Mixin多重继承
    frp
    CentOS7 安装远程桌面
    Java-JVM 锁优化
    Java-内存模型 synchronized 的内存语义
    Java-内存模型 final 和 volatile 的内存语义
    Java-内存模型(JSR-133)
  • 原文地址:https://www.cnblogs.com/christmad/p/13439999.html
Copyright © 2020-2023  润新知