AppleScript генерирует неизвестную ошибку, которая не указана в справочной таблице.

Я получаю эту ошибку: test.scpt: ошибка сценария -41. Не удалось получить текст ошибки из-за ошибки -1700.

Содержимое AppleScript:

tell application "Adobe Photoshop CC 2019"
activate
set js to "#include '/Users/temp_myname/My Application/tmp/Adobe Scripts/script.jsx';" & return
delay 3
do javascript js
end tell

Содержимое JSX-скрипта:

#target photoshop
var err = "";
app.bringToFront();
app.displayDialogs = DialogModes.ERROR;
var fileRef = new File("/Users/temp_myname/My Application/tmp/10.20.5.18/default_10/Images/889original.jpg");
try{
open(fileRef);
} catch (Error) { err = Error }
;fileRef = null;
var errorFile = new File("/Users/temp_myname/My Application/tmp/Adobe Scripts/psperr.txt");
errorFile.open("w");
errorFile.write(err);
errorFile.close();
errorFile = null;

function runMenuItem(item) {
cTID = function(s) { return app.charIDToTypeID(s); };var desc = new ActionDescriptor();var ref = new ActionReference();ref.putEnumerated( cTID( "Mn  " ), cTID( "MnIt" ), item );desc.putReference( cTID( "null" ), ref );executeAction( cTID( "slct" ), desc, DialogModes.NO );
}

Версия OSX: 10.14.6

Как этот скрипт может генерировать код ошибки -1700? тот же скрипт отлично работает на другом Mac (с той же конфигурацией).

Что означает -41? Не могу найти в справочной таблице:

Номера ошибок и сообщения об ошибках

На этой странице я получил описание кода ошибки -1700:

Обнаружены неверные данные параметра или произошел сбой при выполнении приведения.

Я проверил права доступа к файлам, перезагрузил Finder, отключил антивирусный сканер, размонтировал тома... Я также добавил исполняемые файлы osascript и extendscript в настройки безопасности системы.

Что вы думаете? Как я могу заставить это работать?

КСТАТИ. Я запускаю AppleScript из приложения Java, использующего OpenJDK, например:

Runtime rt = Runtime.getRuntime();
Process proc;
String[] process;

process = new String[2];
process[0] = "osascript";
process[1] = "/Users/temp_myname/My Application/tmp/Adobe Scripts/test.scpt";
proc = rt.exec(process);

person extremecoder85    schedule 06.05.2020    source источник
comment
Вы что-то скрываете или это буквально Users/temp_myname/My Application/tmp/Adobe Scripts/script.jsx?   -  person matt    schedule 06.05.2020
comment
Я скрыл реальный путь и имя пользователя, но он в том же формате.   -  person extremecoder85    schedule 06.05.2020
comment
Что ж, если вы собираетесь солгать нам, проблема может быть где угодно. Предлагаю отладку. Удаляйте строки до тех пор, пока они не будут работать без ошибок, а затем медленно начинайте вставлять их обратно.   -  person matt    schedule 06.05.2020
comment
Забавно то, что когда эти сценарии запускаются из отладчика сценариев, они просто работают. РЕДАКТИРОВАТЬ: добавлена ​​информация о том, как выполняется скрипт.   -  person extremecoder85    schedule 06.05.2020


Ответы (1)


Это было исправлено. Хитрость заключается в том, чтобы добавить сон между выполнением двух таких AppleScript.

Код ошибки -41 — это код ошибки OSX, который можно найти в MacErrors.h: mFulErr = -41, /память заполнена (открыта) или файл не помещается (загружается)/

person extremecoder85    schedule 07.05.2020