繁体   English   中英

Linux下的IntelliJ Idea,主类上没有这样的文件或目录

[英]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_HOMEJDK_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 ......

所以我:

  1. 更新了上面指定的替代配置,
  2. /usr/lib/jvm/default-java符号链接更改为指向java-7-openjdk-amd64
  3. double检查了所有环境变量(我的JAVA_HOMEJDK_HOME都指向/usr/lib/jvm/default-java ),
  4. 适当地重新配置我的项目的SDK(以及项目中的所有模块),

瞧 - 问题解决了!

解决了它。 删除所有jdk / jre,安装openjdk7。

将此行添加到.bashrc

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386/
export PATH=$PATH:$JAVA_HOME/bin

运行想法。 利润。 :)

我遇到了同样的问题。 我发现底层系统范围的Java版本无关紧要,因此无需设置JAVA_HOMEupdate_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是否配置正确(至少它不是红色)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM