运行 java 来自 Apache/PHP "could not find main class"
Running java from Apache/PHP "could not find main class"
我试图让 apache 和 PHP 执行输出到 std:out 的 java 程序,但我一直收到 "Error: Could not find or load main class"。这一切都发生在 Raspian 上。
我的 index.php 在 var/www 中,我的 java 程序在 var/www/pathy-lang
Pathy.class 是我的 main() 所在的位置,当我尝试在终端中执行 java pathy-lang/Pathy
或在我的 PHP 文件中使用反引号运算符时出现错误。如果我和它在同一个目录中并在命令行上执行 java Pathy
,那么 Pathy 就可以工作。
我宁愿在其他地方使用 pathy-lang(最好是 /usr/local/lib 之类的地方),但我只会考虑一旦我让它在一个文件夹之外工作。
我知道 apache 使用 www-data 用户做事,这会使事情复杂化吗?
我假设这与我的文件权限、PATH 或 CLASSPATH 有关。但是由于 linux 的经验很少,我不知道从哪里开始尝试对此进行排序。由于 "not found" 的响应,我假设这是一个 PATH 或 CLASSPATH 错误,但是在回答时您是否也可以提及权限设置,因为一旦设置了 PATH,这可能是下一个障碍。
一个朋友帮了我,告诉我关于 java 的 -cp 选项来定义 class 路径。似乎我的直觉是正确的,因为我在 .profile 中设置了 class 路径,它对我以外的任何其他用户都不起作用。
通过在 -cp 选项中定义完整的 class 路径,然后说出 class main() 所在的内容,它起作用了。
我试图让 apache 和 PHP 执行输出到 std:out 的 java 程序,但我一直收到 "Error: Could not find or load main class"。这一切都发生在 Raspian 上。
我的 index.php 在 var/www 中,我的 java 程序在 var/www/pathy-lang
Pathy.class 是我的 main() 所在的位置,当我尝试在终端中执行 java pathy-lang/Pathy
或在我的 PHP 文件中使用反引号运算符时出现错误。如果我和它在同一个目录中并在命令行上执行 java Pathy
,那么 Pathy 就可以工作。
我宁愿在其他地方使用 pathy-lang(最好是 /usr/local/lib 之类的地方),但我只会考虑一旦我让它在一个文件夹之外工作。
我知道 apache 使用 www-data 用户做事,这会使事情复杂化吗?
我假设这与我的文件权限、PATH 或 CLASSPATH 有关。但是由于 linux 的经验很少,我不知道从哪里开始尝试对此进行排序。由于 "not found" 的响应,我假设这是一个 PATH 或 CLASSPATH 错误,但是在回答时您是否也可以提及权限设置,因为一旦设置了 PATH,这可能是下一个障碍。
一个朋友帮了我,告诉我关于 java 的 -cp 选项来定义 class 路径。似乎我的直觉是正确的,因为我在 .profile 中设置了 class 路径,它对我以外的任何其他用户都不起作用。
通过在 -cp 选项中定义完整的 class 路径,然后说出 class main() 所在的内容,它起作用了。