java - 为什么 javac 在我的 IDE 没有时抛出编译错误?

标签 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;
                   ^
  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,因为它包含您的其他源文件。

尝试:

javac  -cp .:../lib/kryonet-2.21-all.jar Control.java

关于java - 为什么 javac 在我的 IDE 没有时抛出编译错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32472323/

相关文章:

linux - shell 脚本 : replacing and adding characters in a string

shell - 如何在 Shell Scripting 中获取文件的创建/修改日期?

bash - 在 cat 命令中转义 Unix 中的美元符号

java - IntelliJ 插件 - 需要挂接到现有操作

java - 从牌中分离花色

java - Primefaces 日历仅适用于弹出按钮

android - Kotlin , Gradle : mixing Android and non-Android modules

scala - 如何从sbt/apache flink项目中的资源文件夹中打开文件

java - 查找包含特定字符串且带有空格的文本?

java - 如何从 Java 和 JPA 调用存储过程