我在linux下运行IntelliJ Idea.我在其中创建了一个项目和一个模块,在该模块中我有一个类(MyClass.class),当我尝试从IDE运行它时,我得到了
错误:MyClass.class(没有这样的文件或目录)
有人可以解释为什么IntelliJ Idea无法识别我的模块中的类吗?我知道它应该是关于模块设置的问题,但我无法弄明白.我正在使用Ubuntu 11.10
好的,我把这里的路径和所有内容都放在这里:)
类型:echo $ PATH
结果:
/ 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 /箱子
类型: echo $ JAVA_HOME
结果:
/ usr/lib/jvm/java-7-openjdk-i386
键入: ./ aidea.sh 结果: 注意:如果同时安装了Sun JDK和OpenJDK,请将IDEA_JDK或JDK_HOME环境变量点验证为有效的Sun JDK安装
Arkde,我有一个可能的解释,为什么Jaroslav的JDK7解决方案不适合你.
也许你在各种替代项目中混合了Java版本,可能与环境变量喜欢JAVA_HOME
和JDK_HOME
指向的版本相冲突?
也许某些东西指向/usr/lib/jvm/default-java
符号链接作为JDK主页,并且该符号链接指向不同版本的JDK而不是预期的?
您是否尝试将所有Java工具的替代品重置为版本7?像这样:
update-java-alternatives --list # ...see what JDK's are available, choose the one that corresponds to Java 7 # and set it to be the default in alternatives: sudo update-java-alternatives --set java-1.7.0-openjdk-amd64 # or interactively: sudo update-alternatives --config java
以下命令在您的系统上输出什么?
echo $JAVA_HOME echo $JDK_HOME ls -l /usr/lib/jvm/default-java update-java-alternatives --list update-alternatives --list java
我有完全相同的问题.我已经在Idea流程上执行了操作,在日志中我看到它试图打开几个.class文件而没有指定它们的路径 - 比如open("SomeClass.class", O_RDONLY) = -1 ENOENT (No such file or directory)
- 没有指向项目输出目录和相应包的路径.
所以我在JDK 6上安装了JDK 7:
apt-get install openjdk-7-doc openjdk-7-jdk openjdk-7-jre openjdk-7-jre-headless openjdk-7-jre-lib openjdk-7-source
在Ubuntu 11.10 Oneiric中,如果你想要OpenJDK 7,OpenJDK 6是不可移动的.JDK 7依赖于JDK 6 ......
所以我:
更新了上面指定的替代配置,
将/usr/lib/jvm/default-java
符号链接更改为指向java-7-openjdk-amd64
,
双重检查所有环境变量(我JAVA_HOME
和JDK_HOME
两者都指向/usr/lib/jvm/default-java
),
适当地重新配置我的项目的SDK(以及项目中的所有模块),
瞧 - 问题解决了!
解决了它.删除所有jdk/jre,安装openjdk7.
将此行添加到.bashrc
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386/ export PATH=$PATH:$JAVA_HOME/bin
运行想法.利润.:)