为什么javac抛出编译错误而我的IDE没有?
我正在使用IntelliJ进行java开发。我想在另一台只有shell访问权限的主机上运行我的应用程序 当我在本地运行应用程序时,一切都很好。当我尝试在远程主机上编译代码时,我得到:为什么javac抛出编译错误而我的IDE没有?,java,shell,intellij-idea,command-line-interface,javac,Java,Shell,Intellij Idea,Command Line Interface,Javac,我正在使用IntelliJ进行java开发。我想在另一台只有shell访问权限的主机上运行我的应用程序 当我在本地运行应用程序时,一切都很好。当我尝试在远程主机上编译代码时,我得到: usr@host1:~/mp1/src$ javac -cp ../ Control.java Control.java:10: error: cannot find symbol private static Node genNode = null; ^ symb
usr@host1:~/mp1/src$ javac -cp ../ Control.java
Control.java:10: error: cannot find symbol
private static Node genNode = null;
^
symbol: class Node
location: class Control
Control.java:25: error: cannot find symbol
genNode = new Node(hostname);
^
symbol: class Node
location: class Control
2 errors
文件Node.java
位于同一目录中:
mp1
├── src
│ ├── ClientControl.java
│ ├── Control.java
│ ├── Node.java
│ ├── Registrar.java
│ ├── ServerControl.java
│ ├── UX.java
├── lib
│ └── kryonet-2.21-all.jar
我也不能在本地编译,除非它是从IDE内部编译的,所以我想我只是做得不对。我错过了什么?我只是希望能够从shell运行我的应用程序,我并不关心如何运行。编译时必须正确设置类路径 类路径中存在问题。因为您只将父目录设置为类路径。您还必须包括
src
,因为它包含其他源文件
尝试:
查找/usr/lib/jvm/java-1.x.x-openjdk
vim /etc/profile
添加以下两行:
export JAVA_HOME="path that you found"
export PATH=$JAVA_HOME/bin:$PATH
有关更多参考信息,您可以尝试:-可能您的IDE中的项目中有一个库,而基本库文件夹中没有库,因此编译器无法找到itHm,可能是这样吗?我把我的lib树添加到了帖子中。。知道如何修复它以便编译器可以看到它吗?只需检查您是否已将
JAVA\u HOME
配置为测试只需尝试命令echo%JAVA\u HOME%
请显示一个简短但完整的程序来演示该问题。我们不知道你的代码在什么包中,或者类似的东西。您可以尝试一次编译所有代码:javac-cp..*。java
@MrDuk:运行它时听起来像是个错误(因为没有正确运行它-您在尝试运行代码时没有指定.java
文件,您只需指定类名)。很酷,这看起来像是正确构建了.class
文件。现在我不知道如何执行我的应用程序。我尝试了java UX.java
,它包含我的main()
,但它只是说找不到或加载主类UX.java
您使用符合的字节码(.class)而不是源文件执行应用程序。同样,在类路径中正确地包含所有编译的类和库!谢谢你,一束。奖励积分-我的项目是否不可靠?我应该以不同的方式组织这些内容,还是必须在cli中指定这些内容是很常见的?对于一个简单的/学习的项目来说,您的结构很好。实际上,“java/javac”很少在java世界中直接使用。您要么使用IDE,要么使用Maven之类的构建工具。
export JAVA_HOME="path that you found"
export PATH=$JAVA_HOME/bin:$PATH