[英]IntelliJ Idea under Linux, No such file or directory on main class
我在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 / bin中
类型: 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过程中执行了strace,在日志中我看到它试图打开几个.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
), 瞧 - 问题解决了!
解决了它。 删除所有jdk / jre,安装openjdk7。
将此行添加到.bashrc
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386/
export PATH=$PATH:$JAVA_HOME/bin
运行想法。 利润。 :)
我遇到了同样的问题。 我发现底层系统范围的Java版本无关紧要,因此无需设置JAVA_HOME
或update_alternatives
。 我所要做的就是更改IDEA中的一些设置:
File -> Project structure -> SDKs
) 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是否配置正确(至少它不是红色)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.