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

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

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中进行的,所以我假设我做的事情不正确。我想念什么?我只希望能够从外壳运行我的应用程序,我并不在乎如何。

最佳答案

编译时必须正确设置类路径。

您的类路径中有问题。由于仅将父目录设置为类路径。您还必须包括src,因为它包含其他源文件。

尝试:

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

07-26 09:27
查看更多