Получение ошибки Apache при использовании php 'shell_exe c () для вызова программы java? - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь запустить программу java под названием 'Audiveris' с функцией

php. Audiveris - это инструмент с открытым исходным кодом для оптического распознавания музыки c, написанный на java. Я могу вызывать и запускать небольшие тестовые java файлы, которые выводят простую строку с shell_exe c (). Однако, когда я пытаюсь позвонить в Audiveris, я получаю сообщение об ошибке в журнале ошибок Apache. Вот сообщение об ошибке, которое я получаю. *1002*
May 01, 2020 8:21:04 PM sun.awt.shell.Win32ShellFolderManager2 getPersonal
WARNING: Cannot access 'Personal'
java.io.IOException: Could not get shell folder ID list
    at sun.awt.shell.Win32ShellFolder2.getFileSystemPath0(Native Method)
    at sun.awt.shell.Win32ShellFolder2.access$800(Unknown Source)
    at sun.awt.shell.Win32ShellFolder2$7.call(Unknown Source)
    at sun.awt.shell.Win32ShellFolder2$7.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at sun.awt.shell.Win32ShellFolderManager2$ComInvoker$3.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

May 01, 2020 8:21:04 PM sun.awt.shell.Win32ShellFolderManager2 getDesktop
WARNING: Cannot access 'Desktop'
java.io.IOException: Could not get shell folder ID list
    at sun.awt.shell.Win32ShellFolder2.getFileSystemPath0(Native Method)
    at sun.awt.shell.Win32ShellFolder2.access$800(Unknown Source)
    at sun.awt.shell.Win32ShellFolder2$7.call(Unknown Source)
    at sun.awt.shell.Win32ShellFolder2$7.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at sun.awt.shell.Win32ShellFolderManager2$ComInvoker$3.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

Exception in thread "main" java.lang.ExceptionInInitializerError
    at org.audiveris.omr.Main.<clinit>(Main.java:64)
    at Audiveris.main(Audiveris.java:49)
Caused by: java.lang.NullPointerException
    at org.audiveris.omr.WellKnowns.getFolderForWindows(WellKnowns.java:403)
    at org.audiveris.omr.WellKnowns.getFolder(WellKnowns.java:302)
    at org.audiveris.omr.WellKnowns.<clinit>(WellKnowns.java:141)
    ... 2 more

Вот то, что я использую в shell_exe c. Все пути правильны, а $ sheet_music_path - это просто путь к листу musi c pdf. Я получил эту команду из gitbooks Audiveris, и я могу использовать эту команду в командной строке без проблем.

shell_exec('java -cp "Audiveris/lib/*" Audiveris -batch -export '.$sheet_music_path);

Я использую Windows 10, jdk8 (требуется Audiveris), php 7.3.12, apache 2.4.41 и сервер Wamp. Благодаря.

...