在一个工程下创建一个源文件然后进行将从网上download的代码复制运行的时候出现了“错误: 找不到或无法加载主类 "错误: 找不到或无法加载主类 ”的情况,整个项目使用maven构建的,然后试着运行相同package下的已经存在的源文件,发现可以运行,但是将该文件的目标文件(编译好的文件)删除之后再次运行同样出现这个问题,这应该说明当前package下的所有文件都出现问题了。
点开该工程的“Build Path”然后进行Configure发现这个package所在的目录已经加入到source下面了,这就奇怪了。
于是在Linux下直接创建一个.java文件,然后复制相同的内容,直接用javac编译,然后通过java运行发现可以正常运行,这说明绝对是eclipse的问题了。在网上搜了一下这个问题的解决方案,但是还是不可以,在这个博文(
http://blog.sina.com.cn/s/blog_8723546a010181lj.html)中找到了这个问题导致的现象和我的一样。我发现我的工程下依赖的jar里面maven
Dependecies下也有一个jar包是有红叉叉的,这个jar包是jdk.tools-1.7.jar,然后再搜一下关于这个文件找不到的问题,找到了这个博文(
http://my.oschina.net/frankwu/blog/332873),于是我用了第二种手动添加的方法将jdk中的tools.jar加入到本地的maven库里面,首先进入到本机的jdk目录中的lib目录下,然后运行如下的命令:mvn
install:install-file -DgroupId=jdk.tools -DartifactId=jdk.tools -Dpackaging=jar -Dversion=1.7 -Dfile=tools.jar -DgeneratePom=true,至于这个命令干什么的自行去搜索吧。
加入完成之后能够看到maven Dependecies下的红叉叉不见了,这时候再次运行那个java文件,发现还是不行!我勒个擦!我快要被搞崩溃了,于是就随便倒腾一下,在Build Path中Order And Export标签下将需要运行文件的package所在的classpath遇到了最上面(Up或者Top),确定之后发现这个classpath的确在该工程的第一位了,再次抱着试试看的心态试了一下,我勒个擦,居然可以了,这到底是什么原因啊,一头雾水中...
这时候我就在想自己一直不喜欢用集成开发环境就是这个原因,出了问题不知道该怎么解决,如果想很好的使用这些工具你需要将遇到的问题都记录下来,然后下次遇到的时候才能够知道怎么解决,或者碰巧在网络上有人以前遇到过和你原因相同的、出现的现象也差不多的错误,后者可以很快的帮助你解决问题,但是如果自己倒腾可能会浪费很长时间还要一堆坏心情。而直接在linux用命令行的方式,如果找不到文件或者其他错误大部分可以在错误提示中找出原因,当然付出的就是效率比较低的代价。其实这和使用一些框架差不多,还是应该多熟悉多记录,遇到问题多思考,多了解一下底层实现原理,这样出了问题才能有解决方案,而不要对集成开发环境或者框架内部一点不了解,出了问题只能瞎猜。