0

我处于非常非常沮丧的境地。我的程序在 netbeans 中运行 100%,但是当我构建它时它有一些问题。也就是说,在我的程序中,有一个接口和10个实现类。程序根据用户保存文件的方式调用正确正确的实现类(例如:如果用户将其保存为game.yellow,它将调用“YellowImpl.java”,如果保存为game.red,那么“RedImpl.java”同样) .

但是当它建成时,它称一切都很好,而不是 YellowImpl!这意味着,如果用户将其保存为 game.red,它将正确调用“RedImpl”,并且与所有其他实现相同,而不是 YellowImpl。当用户将文件保存为 game.yellow 时,程序什么也不做!!!但是,当它在 netbeans 中时,这不会发生!我也尝试过清洁和构建,但仍然不好!这是什么原因造成的?请帮忙!

但是,我无法提供代码,因为它有很多编码

PS:我也在使用一些库

4

3 回答 3

1

很难准确理解您的解释和没有代码存在什么问题。但是,我假设您对实现命名约定有疑问。

也许下面的链接可以提供帮助。

Java 接口/实现命名约定

于 2012-05-22T09:23:47.727 回答
0

非常感谢各位的回复。但是,我设法找到了问题所在。那是一个简单的,大写的案例!我有一个名为“kolor”的包,所有的实现都在里面。在我的“YelloImpl”课程中,我将包称为“Kolor”(注意“K”是大写字母)。在netbeans中很好,但在外面却不是。清除这一切后,一切顺利。再次感谢大家的回复。

于 2012-05-22T15:22:32.467 回答
0

我同意@Rhys:很难理解您的应用程序中发生了什么。让我给你一个建议:不要认为(即使是 1 秒)Java 编译器、JVM 等存在错误。这绝对是你的错误。

如何找到它?我建议你使用远程调试。使用启用的远程调试器在 IDE(在您的情况下为 NetBeans)之外运行您的应用程序,使用 net bean 连接到它并调试您的应用程序。我相信你会在几分钟内解决这个问题。

如何启用远程调试?将以下长字符串添加到您的 java 执行命令行:

-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

如果在程序执行的最开始发生了一些事情,请使用suspend=y.

现在从 NetBeans 连接到此应用程序。很简单,8000根据你的应用配置配置成port即可。

而已。祝你好运。

于 2012-05-22T09:40:55.297 回答