有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在Eclipse中调试时如何修复断点错误?

需要调试JAR文件“ProA”,所以在项目中导入源代码, 但是Eclipse在试图设置断点时出现了一个奇怪的错误。 详情如下:

Unable to install breakpoint due to missing line number attributes.
Modify compiler options to generate line number attributes.

我试过几种方法来解决,但都失败了

  1. 窗口下>;首选项:Java>;编译器>;类文件生成,所有选项都必须为True
  2. 在项目的.settings文件夹中,查找名为org.eclipse.jdt.core.prefs的文件。验证或设置org.eclipse.jdt.core.compiler.debug.lineNumber=generate
  3. build.xml中添加debug=true标志,如下所示:<javac srcdir="./src/java" destdir="./bin" debug="true">

任何帮助都将不胜感激


共 (3) 个答案

  1. # 1 楼答案

    我也遇到过同样的问题,但阅读你的帖子帮助我解决了我的问题。我将org.eclipse.jdt.core.prefs更改如下:

    之前:

    eclipse.preferences.version=1
    org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
    org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
    org.eclipse.jdt.core.compiler.compliance=1.7
    org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
    org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
    org.eclipse.jdt.core.compiler.source=1.7
    

    之后:

    eclipse.preferences.version=1
    org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
    org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
    org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
    org.eclipse.jdt.core.compiler.compliance=1.7
    org.eclipse.jdt.core.compiler.debug.lineNumber=generate
    org.eclipse.jdt.core.compiler.debug.localVariable=generate
    org.eclipse.jdt.core.compiler.debug.sourceFile=generate
    org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
    org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
    org.eclipse.jdt.core.compiler.source=1.7
    

    在项目中修改这些选项的另一种方法>;房地产>;Java编译器。因此,不需要手动修改org.eclipse.jdt.core.prefs文件。在这里,您需要确保选中了类文件生成选项

  2. # 2 楼答案

    在JAR中,已编译字节码中缺少行号属性。通过添加源代码,Eclipse知道行号,但不知道执行字节码但看不到源代码的Java VM

    如果Eclipse告诉Java虚拟机在特定行停止,这将是无用的,因为Java虚拟机不知道哪个命令在哪一行,也不知道何时停止

    唯一的解决方案是重新创建JAR或至少是字节码(.class文件),其中包含要设置断点的类的行信息

  3. # 3 楼答案

    ****窗口->;偏好->;编译程序**** 为了进行调试,我们需要在类文件中生成行号。 选择“将行号属性添加到生成的类文件(由调试器使用)后,重新生成项目并运行调试器以查看行号、断点和执行指针。 enter image description here