执行字节码(java)时是否忽略异常?

执行字节码(java)时是否忽略异常?,java,noclassdeffounderror,Java,Noclassdeffounderror,我有一个大程序,我用java修改过。我使用intelliJ idea(社区版)IDE进行编译。当我开始运行程序时,它会启动GUI,然后继续做我想从中做的任何事情,几乎没有问题(其中的问题与异常无关)。但是代码总是生成类not found异常(从.jar文件中提取原始未修改的代码后,即使原始未修改的代码也会执行此操作。尽管存在这些错误,但它在IDE中完美地执行,同时仍然注意到错误,但它们似乎对程序没有影响。但是,当我从虚拟机中执行它们时(使用java文件名)通常被忽略的异常会阻止程序的最终执行。错

我有一个大程序,我用java修改过。我使用intelliJ idea(社区版)IDE进行编译。当我开始运行程序时,它会启动GUI,然后继续做我想从中做的任何事情,几乎没有问题(其中的问题与异常无关)。但是代码总是生成类not found异常(从.jar文件中提取原始未修改的代码后,即使原始未修改的代码也会执行此操作。尽管存在这些错误,但它在IDE中完美地执行,同时仍然注意到错误,但它们似乎对程序没有影响。但是,当我从虚拟机中执行它们时(使用java文件名)通常被忽略的异常会阻止程序的最终执行。错误与iDE显示的错误完全相同,但iDE会忽略它们!我如何让虚拟机忽略错误并执行程序(是否有传递给java的选项-例如java-ignoreerrors filename)


这是可能的,还是我必须修改代码?

除非代码实际上不需要该类,否则无法忽略ClassNotFoundExceptions。有些框架通过尝试加载类来发现某些功能是否可用来实现这一点。但是,如果CNFE阻止你的应用程序运行,你只需修复它。如果如果您显示一些堆栈跟踪,可能有人能够引导您朝正确的方向前进。

如果您在
ClassNotFoundException
s方面遇到问题,那么您可以始终使用
try{…}catch(…){…}
定位问题并捕获和记录

如果您得到的是
ClassNotFoundError
s,那么这不是反射的可本地化问题,而是初始化所需代码的失败。您应该尝试删除不需要的依赖项,但确实不应该使用未正确初始化的类

如果一定要这样做的话,您可以使用为任何无法使用系统类加载器解析的名称生成伪空类的方法加载程序,并使用该方法加载主类。这在某种程度上会复制IDE的功能,尽管IDE可能会采取额外的步骤来确保部分功能正常-定义的类具有正确的接口,即使某些方法由于其主体不编译而被存根

  • 您只能忽略编译器警告。不能忽略错误
  • IntelliJ显示的错误来自同一个编译器
  • ClassNotFoundException
    表示您的代码无法在运行时动态加载类
  • 这可能意味着类路径中缺少必需的依赖项(jar)。请尝试查阅代码文档,确保已解析所有运行时依赖项。同时确保依赖jar位于类路径中,否则运行时将无法找到它们

  • “始终生成未找到的类异常”你得到的是
    ClassNotFoundException
    s还是
    ClassNotFoundError
    s?你在开玩笑-你想让JVM忽略错误/异常?你是在IDE中以某种调试模式启动应用程序的吗?对不起,我应该编辑一下,是异常,现在是错误谢谢,这很有意义。未修改的字节码放在一个jar中,我可能缺少类加载器文件。我将尝试编写我自己的(或找到原始的)什么情况会导致一个专门的类加载器?intelliJ idea(我的IDE)能为我创建文件吗(看起来它是为了执行代码而做的)