【发布时间】:2018-11-29 23:41:02
【问题描述】:
当我尝试以 root 身份运行 java 命令时,我收到臭名昭著的错误“无法找到或加载主类...”。
我尝试了this solution,但没有成功。
which java 返回/usr/bin/java 所以我尝试在 ~/.bashrc 处追加
export PATH=$PATH:/usr/bin/java
或
export PATH=$PATH:/usr/bin,再次...没有成功。
ps:我想以 root 身份运行,因为我使用套接字创建了一个简单的服务器,并且我想用一个 android 应用程序 ping 它。问题是我的权限被拒绝了。
【问题讨论】:
-
当您将您的 uid 更改为 root 时,检查 $CLASSPATH 是否仍然设置。
-
其实可能是因为程序不匹配root的目录。也许我也必须以 root 身份编译。
-
等待——“找不到或加载主类”——java 本身正在工作,但它找不到你告诉它运行的类。您需要指定类路径。
java -cp . com.foo.MyMainClass(或者如果需要,将.替换为完全限定的路径) -
请edit您的问题显示您要运行的类存储在哪里(哪个目录),您正在运行什么特定的java命令,以及您运行它时的工作目录是什么。
-
您永远不应该以 root 用户身份运行 Java。这会引发许多安全问题,因为 root 可以在服务器上执行任何操作。您的进程无需以 root 身份运行即可打开套接字。