我在linux下运行IntelliJ Idea . 我在其中创建了一个项目和一个模块,在该模块中我有一个类(MyClass.class),当我尝试从IDE运行它时,我得到了
错误:MyClass.class(没有这样的文件或目录)
有人可以解释为什么IntelliJ Idea无法识别我的模块中的类吗?我知道它应该是关于模块设置的问题,但我无法弄明白 . 我正在使用Ubuntu 11.10
好的,我把这里的路径和所有内容都放在这里:)
type :echo $ PATH
Result: / usr / lib / lightdm / lightdm:/ usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin:/ usr / games:/ usr / lib / JVM / JAVA -7-的openjdk-I386 / bin中:/ usr / lib中/ JVM / JAVA -7-的openjdk-I386 / bin中:/ usr / lib中/ JVM / JAVA -7-的openjdk-I386 / bin中
type: echo $ JAVA_HOME Result:
/ usr / lib中/ JVM / JAVA -7-的openjdk-I386
type: ./idea.sh Result: 注意:如果同时安装了Sun JDK和OpenJDK,请将IDEA_JDK或JDK_HOME环境变量点验证为有效的Sun JDK安装
6 回答
Arkde,我有一个可能的解释,为什么Jaroslav的JDK7解决方案不适合你 .
也许你在各种 alternatives 项目中混合使用Java版本,可能与
JAVA_HOME
和JDK_HOME
等环境变量指向的版本冲突?也许有些东西指向
/usr/lib/jvm/default-java
符号链接作为JDK主页,并且该符号链接指向不同版本的JDK而不是预期的?您是否尝试将所有Java工具的替代品重置为版本7?像这样:
以下命令在您的系统上输出什么?
我有完全相同的问题 . 我已经在Idea过程中执行过strace,在日志中我看到它试图打开几个没有指定路径的.class文件 - 比如
open("SomeClass.class", O_RDONLY) = -1 ENOENT (No such file or directory)
- 没有项目输出目录和相应包的路径 .所以我在JDK 6上安装了JDK 7:
在Ubuntu 11.10 Oneiric中,如果你想要OpenJDK 7,OpenJDK 6是不可移动的.JDK 7依赖于JDK 6 ......
所以我:
更新了上面指定的替代配置,
将
/usr/lib/jvm/default-java
符号链接更改为指向java-7-openjdk-amd64
,double检查了所有环境变量(我的
JAVA_HOME
和JDK_HOME
都指向/usr/lib/jvm/default-java
),适当地重新配置了项目的SDK(以及项目中的所有模块),
瞧 - 问题解决了!
解决了它 . 删除所有jdk / jre,安装openjdk7 .
将此行添加到.bashrc
运行想法 . 利润 . :)
我遇到了同样的问题 . 我发现底层系统范围的Java版本无关紧要,因此无需设置
JAVA_HOME
或update_alternatives
. 我所要做的只是更改IDEA中的一些设置:添加Java SDK,OpenJDK 7或Oracle JDK 6或7(
File -> Project structure -> SDKs
)选择它作为Project SDK(
File -> Project structure -> Project
)检查是否已启用 Make 复选框,否则IDEA将无法编译您的项目,还会验证输出目录中是否有类文件,并且您正在使用正确模块的类路径运行 .
如果问题仍然存在,请发送示例项目以获得支持 .
我遇到了同样的问题 - 我将我的项目(和Idea设置)从带有Ubuntu 10.04和sun-jdk-6的笔记本电脑移动到带有Ubunty 11.10和openjdk-6的PC上 . 在项目重建时,我得到了所有类的
MyClass.class (No Such file or directory)
错误 .感谢Jaroslav,他的(差不多)解决方案确实有所帮助 - 我无法解释为什么,也许它也适用于sun-jdk-6 ......所以,我安装了openjdk-7,没有删除openjdk-6,并设置了第7个作为一个项目的JDK在Idea中 . (我没有在环境变量中做任何改变 . )用jdk7编译 .
PS我应该把它写成对Jaroslav的帖子的评论,而不是单独的答案,但我还没有足够的声誉做到这一点......
尝试使用IDEA
sh -c "export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386 && ./idea.sh"
开始时按
Ctrl+Alt+Shift+S
打开“项目设置”对话框 . 在左侧面板中选择 Project 并验证是否正确配置了 Project SDK (至少它不是红色) .