0 レビュー
2 回答
PHP-execがJavaファイルを実行するために機能していません
私はこれを理解しようとして何時間もインターネットを検索してきましたが、それは意味がありません。
PHPのexec()
を使用しており、ディレクトリ内の1つのクラスファイルに対して機能しますが、別のクラスファイルは実行されません。これが私のコードです:
exec("cd '/path/to/directory';java helloWorld 2>&1", $output);
1つは問題なく機能しますが、次の1つは機能しません。試してみると、 java.lang.ClassNotFoundException
が表示されます:
exec("cd '/path/to/same/directory';java otherClass 2>&1", $output);
同じディレクトリにある他のファイルではなく、1つのファイルが機能する理由は私には意味がありません。ディレクトリ全体にアクセスできることを確認しました。
わからない
0
レビュー
答え :
解決策:
Javaクラスのパッケージ名を確認します。パッケージ名がある場合は、 java packagename.OtherClass
わからない
0
レビュー
答え :
解決策:
私が抱えていた問題は、実行中のPHPと同じフォルダーに helloWorld.class
の重複があったことでした。私のディレクトリにあるものの代わりに。 cd
コマンドを実行できませんでしたが、同じディレクトリでクラスファイルを実行できました。
私が今理解できない問題は、なぜディレクトリに移動できないのかということです。権限の問題だと書いてありますが、 exec("whoami")
を出力すると_www
が表示され、ディレクトリの所有者は _www
であり、所有者は読み取り、書き込み、および実行の権限を持っています。
編集:
_www
に、アクセスしたいディレクトリの上のすべてのディレクトリへのアクセスを許可しました。これで機能します。
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。