远程调试时Eclipse出现“源代码未找到”的错误提示

15
在我的Java Eclipse项目中,在进行远程调试时,即使源文件jar已正确映射到库文件,Eclipse也不会步入导入的库文件的类文件。
相反,它会给出“未找到源代码”错误。但是,当我在Eclipse中编辑同一类时,我可以控制单击类或方法名称,并且会带我到正确的库类文件。
请问有人能告诉我我做错了什么吗?
我正在使用Tomcat 6和最新的Eclipse Java EE。
9个回答

28
在这种情况下,请按照以下步骤进行操作:
  1. 转到 Run → Debug Configurations
  2. 选择正在调试的远程应用程序配置。
  3. 选择名为'Source'的第二个选项卡
  4. 现在在此处显式添加包含源代码的文件夹/项目。

4
我做了那件事,但它仍然显示“找不到来源”,并且在下方显示“编辑源查找路径”按钮。 - Stealth
2
还有一个复选框(请原谅我不确定),它说包括重复的文件/路径之类的东西。也尝试将其设置为true并查看是否有效。 - Saurabh
1
我遇到了同样的问题,但在勾选复选框后仍然无法正常工作。我可以在调试视图中看到值,但它找不到源代码。你能帮我吗? - Marco Leo
1
使用以下选项启动Java应用程序:java -agentlib:jdwp=transport=dt_socket,server=y,address=8000 org.iforge.aectann.DebugMe,而不是选项java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y suspend=y -jar stockTradingGUI.jar - RoboAlex
依赖的 .class 文件的源文件存储在哪里? - Javatar
显示剩余2条评论

2

正如Saury所说,要确保你的调试配置正确。在进行远程调试时,开发人员经常会在创建新的配置时选择错误的项目。请验证您选择了要调试的项目,并且它对应于应用程序容器中已部署的WAR / EAR / JAR的版本。


2
在项目的Java构建路径中,在选项卡下,检查您的类路径是否位于包含列表中。如果它在排除列表中,请将其从中删除。

1
我遇到了类似的问题。事实证明我在CentOS上缺少devel包。
在我的情况下,以下yum语句解决了这个问题。
yum install java-1.7.0-openjdk-devel

1

我遇到了同样的问题,并通过以下步骤在eclipse中解决了它。

  1. 进入Eclipse选项卡中的服务器选项卡
  2. 右键单击服务器,然后单击添加和删除项目
  3. 选择/添加要调试的项目EAR
  4. 完成后-以调试模式启动服务器

按照上述步骤应该可以解决问题,因为这对我有用 :)


1

如果您使用连接到子项目的父项目,请按照以下步骤操作:

使用“Debug Configurations”源选项卡或“Edit Source LookUp path”选项来附加运行代码的源代码

注意:为使其正常工作,您需要附加内部项目的src文件夹而不是target文件夹(请参见下面的屏幕截图)。

例如:

enter image description here

关于Eclipse Oxygen的更新(2018年2月):

附加Java项目(子项目)也很有效,例如:

enter image description here


0

请在“调试配置” -> “远程Java应用程序” -> “连接”选项卡 -> “项目”中检查您选择了正确的项目。


0

这是我是如何操作的。在Eclipse oxygen上进行以下步骤:

  1. 进入调试配置,然后选择源选项卡
  2. 点击添加
  3. 选择Java库,点击确定
  4. 选择Web应用程序库并点击下一步
  5. 在下一个屏幕中选择您要调试的项目/应用程序。
  6. 点击完成

这对我非常有效。


-1

使用Eclipse版本Oxygen.2(2017),接受的答案对我无效。以下步骤成功。

  1. 使用 XdebugXrunjdwp 开关启动应用程序进行调试。

    cd "C:\Program Files\Test_742\Test 7.4" test_app.exe -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8500

  2. 在 Eclipse 中创建一个新的工作区。

  3. 使用文件 -> 新建 -> Java 项目创建一个新的 Java 项目。

  4. 将要调试的 Jar 的源代码复制到新项目的 src 文件夹中。我发现有必要确保我将源代码的完整文件夹层次结构复制到我的源文件夹中。

    对我来说,这意味着将 \com\test... 复制到我的 src 文件夹中。

    这将所有源代码放入了构建路径中。

  5. 将任何依赖的 JAR 复制到该项目中。我创建了一个名为 myJARs 的新文件夹。

  6. 刷新包资源管理器以查看新的 myJARs 文件夹。

  7. 通过打开文件 -> 属性 -> Java 构建路径 -> 库(选项卡),然后单击添加 JARs... 将依赖的 JAR 添加到列表中,然后单击应用和关闭。这将把 JAR 添加到引用库中。

  8. 配置调试会话。单击运行 -> 调试配置 -> 远程 Java 应用程序。我设置 连接类型 = 标准

    将主机配置为指向运行 JAR 的计算机,端口配置为命令行开关(例如我的示例中的 8500)中指定的端口。

  9. 请注意,在源选项卡上,源文件和依赖的 JAR 都存在。

  10. 单击应用,然后单击调试。

  11. 通过单击窗口 -> 透视图 -> 打开透视图 -> 调试查看调试透视图。

  12. 在源代码中设置断点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接