调试 .jar 文件包含 main 方法的 Java 项目

发布于 2024-10-04 10:21:16 字数 516 浏览 3 评论 0原文

对于游戏树的课堂练习,我必须编写适用于的代码.jar 文件。我以前没有以这种方式使用过Java。我的 Eclipse 项目树如下所示:

Project tree

要运行代码,我被告知要在命令行上执行此操作:

java -jar VierOpEenRij.jar 男士 spel.speler.Random 5 5

如何调试此代码?我尝试修改 Eclipse 的调试配置,还尝试执行 jdb -jar VierOpEenRij.jar Mens spel.speler.Random 5 5 但我无法找到启动调试器的方法。

.jar 文件包含 main 方法时,如何调试我的代码?

For a class exercise on game trees, I have to write code that works with a .jar file. I haven't used Java in this way before. My Eclipse project tree looks like this:

Project tree

To run the code, I was told to do this on the command line:

java -jar VierOpEenRij.jar Mens spel.speler.Random 5 5

How do I debug this code? I have tried tinkering with Eclipse's debug configurations and I also tried executing jdb -jar VierOpEenRij.jar Mens spel.speler.Random 5 5 but I can't figure out a way to start the debugger.

How do I debug my code when a .jar file contains the main method?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

悲喜皆因你 2024-10-11 10:21:16

我不确定是否使用jdb进行调试,但是如果您在Eclipse中进行调试,那么最终的打包(例如jar)是什么并不重要。如果您为 Random(具有 main 方法的类?)类设置调试,那么您将可以很好地调试您的程序。

I'm not sure about debugging with jdb, but if you're debugging in Eclipse, it won't matter what the final packaging(e.g. jar) is. If you set up the debugging for the Random (class with the main method?) class then you will be debugging your program just fine.

最美的太阳 2024-10-11 10:21:16

我可能完全关闭了,因为我还没有真正遇到过这种情况,但不会右键单击罐子 ->调试为... -> Java 应用程序能解决这个问题吗?

编辑:

设法使其以这种方式工作:

  • 需要一个“半”可运行的jar(似乎是您的情况:其中的主类但缺少依赖项,并且清单应指示主类)
  • 将main添加到buidl路径(在包资源管理器视图,右键单击 jar -> build-path -> 添加到构建路径)。
  • 在包资源管理器视图的构建路径节点中,展开 jar 直到深入到 main 方法,右键单击并作为 java 应用程序运行或调试。

出于某种原因,我希望能够右键单击 jar 并直接作为 java 应用程序进行调试... main 在清单中指出,但似乎没有找到它。不知道为什么。但与此同时,这确实有效。

EDIT2:实际上,现在我可以直接右键单击 jar (甚至项目)并在弹出对话框时选择正确的 main ,这一切都很好。也许我之前错过了一些东西。不管怎样,你已经可以开始了。)

在下图中,MainInJar.main() 调用 ClassOutOfJar.somethingOutOfJar(),它会在屏幕上打印一些内容。

Jar 中的主文件

I might be completely off as I haven't really been in this situation, but wouldn't right-click on the jar -> debug as ... -> Java application do the trick?

EDIT:

Managed to make it work this way:

  • need a "semi" runnable jar (seems to be your case: main class in there but missing dependencies, and the manifest should indicate a main class)
  • add the main to the buidl path (in package explorer view, right click on jar -> build-path -> add to build path).
  • in the package explorer view's build path node, expand the jar until your drill down to the main method, right click and run or debug as java application.

For some reason I would expect to be able to right-click the jar and do directly dbug as java app though... the main is indicated in the manifest, but it doesn't seem to find it. Don't know why. But in the meantime, that works.

EDIT2: Actually, now I can directly right-click the jar (or even the project) and select the right main when a dialog pops up, and it's all good. Maybe I missed something earlier. Any way, you're good to go.)

In the picture below, MainInJar.main() calls ClassOutOfJar.somethingOutOfJar(), which prints something to the screen.

Main in Jar

绮烟 2024-10-11 10:21:16

您需要在 jdb 中指定类路径。

jdb -classpath [jar 文件] [主类全名] [参数]

在您的情况下,jar 文件将为: VierOpEenRij.jar

您可以在 META-INF/MANIFEST.MF 的 jar 存档中找到主类名。

You need to specify classpath in jdb.

jdb -classpath [jar-file] [main-class-full-name] [args]

In your case the jar file will be: VierOpEenRij.jar

Main class name you could find in jar archive in META-INF/MANIFEST.MF.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文