Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么javac抛出编译错误而我的IDE没有?_Java_Shell_Intellij Idea_Command Line Interface_Javac - Fatal编程技术网

为什么javac抛出编译错误而我的IDE没有?

为什么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

我正在使用IntelliJ进行java开发。我想在另一台只有shell访问权限的主机上运行我的应用程序

当我在本地运行应用程序时,一切都很好。当我尝试在远程主机上编译代码时,我得到:

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