我有两个 java 类,它们位于 .../jtest/StepRegTest 目录中,包括“package StepRegTest;” 指示。
选项 1。我直接从 shell 调用它:
[jtest]# java StepRegTest.Main
一切正常。
选项 2。我通过 PHP exec调用 java :
<?php
echo getcwd() . "\n";
exec("java StepRegTest.Main 2>&1", $output);
print_r( $output );
?>
当我从 shell 调用PHP 文件时,它与选项 1 位于同一目录jtest中。但是,它返回一个错误:
线程“主”java.lang.NoClassDefFoundError 中的异常:com/quinncurtis/matpackjava/DMatBase
引用这些缺失类的 jar 归档位于 CLASSPATH 中。该类的导入参考是:
import com.quinncurtis.matpackjava.DDMat;
请注意,当我从 shell 执行代码时,一切正常。
这里有什么问题?为什么它可以在 shell 中工作,但不能在 PHP 中工作?
谢谢!