我意外删除了我的类文件(实际上,在尝试配置git存储库时,bin文件夹的全部内容)。
现在,当我在Eclipse上运行程序时,出现错误:
Error: Could not find or load main class BmrMain", and no .class files are generated in the bin folder.
我可以轻松地重建项目,但是"自动构建"启用了,所以我的问题是为什么Eclipse在运行应用程序时不会重建类文件?为什么我必须清理然后重建才能重新创建类文件?
此外,当我将.src文件移动到单独的文件夹进行测试时,我使用命令提示符编译。它工作正常,但在编译(javac BmrMain.java
)时,会弹出以下错误:
Note: BmrMain.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
虽然在输入java BmrMain
时程序运行正常。这些错误意味着什么?我在Eclipse中确实有一些警告,但它们对我来说似乎没什么大不了的,因此,我离开了它们:
答案 0 :(得分:0)
当您在Eclipse 中进行更改时,Eclipse将自动构建。它不会主动监视文件系统,以查看何时删除文件,从文件系统下面构建它。如果您使用Eclipse之外的项目目录,则应始终刷新项目,并且可能需要告知Eclipse手动构建。否则,Eclipse将假设项目处于良好状态(因为它离开了它的位置)。
警告javac
输出告诉您类中有不良做法(未经检查的强制转换,具体而言)。如果您将-Xlint:unchecked
添加到javac
调用,则会准确输出哪些行存在问题。
输出类似于您在Eclipse中已经看到的警告,他们 是一个大问题。您正在使用raw types,这是一种非常糟糕的做法,导致错误,难以使用的代码。在Java 5中引入了Generics,使用它们。
答案 1 :(得分:0)
你应该避免在Eclipse"之外的#34;中删除Eclipse生成的文件。 (例如,通过命令行)。 Eclipse不会自动注意到这些更改。
然而,Eclipse会自动注意对项目的源文件的更改,然后自动重新构建必要的类文件。
另请参阅Eclipse首选项(菜单项" Eclipse> Preferences")。在"一般>工作区"在窗格中,您将找到三个与(自动)刷新相关的复选框:"自动构建","使用本机挂钩刷新或轮询","刷新访问"。应检查所有这些复选框。
答案 2 :(得分:0)
在我的情况下,java构建器丢失了。这可能是一个非常具体的问题,因为ubuntu中的eclipse无法导入git项目,但无论如何,解决方案是编辑.project文件,该文件应该位于项目的根文件夹中,它应该看起来像这样:
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
所以对我来说,添加buildCommand行可以解决问题。