X3D-Edit - проблема с запущенным скриптом в OSX
Я пытаюсь заставить X3D-Edit 3.3 работать, установил его на OSX 10.9.1, но не могу заставить его работать должным образом.
Когда я запускаю скрипт "runX3dEditMac.sh.command", X3D-Edit успешно загружается, пользовательский интерфейс выглядит нормально, но как только я начинаю его использовать, он останавливается, как только я закрываю окно Xj3d, и значки палитры даже не кажутся работать (кроме первой группы в палитре).
Я заметил эти строки в терминале после запуска X3D-Edit:
./runX3dEditMac.sh.command: line 22: -J-Xms32m: command not found
./runX3dEditMac.sh.command: line 25: -J-Dapple.laf.useScreenMenuBar=true: command not found
./runX3dEditMac.sh.command: line 26: -J-XX:+CMSClassUnloadingEnabled: command not found
Код сценария runX3dEditMac.sh.command по умолчанию следующий:
#!/bin/sh
# Shell file to run X3D-Edit 3.2
# First make sure we're running 1.6, will bomb if not
source javaVersionCheck.sh
# Memory settings for X3D-Edit 3.2: see ReadmeX3D-EditMemorySettings.txt
# The default settings for a zipped app exist in x3deditor32/etc/x3deditor32.conf
# The stack (-Xss2m) setting is under evaluation and may need
# increasing because of recursive routines in XML and XSLT processing.
# Xms768m allocates 768 Mb to the Java heap on startup. Xmx768m sets a limit on incremental allocations to the heap.
# If your usage case will normally always require the maximum, set both and performance will slightly increase
# because incremental allocations (to the OS) are eliminated.
# Examples:
# -J-Xss2m
# -J-Xss2m -J-Xmx768m
# -J-Xss2m -J-Xms768m -J-Xmx768m
# and do it this way (showing alternative values for ms and mx):
MEMORYSETTINGS0=-J-Xss2m -J-Xms32m -J-Xmx2g -J-XX:PermSize=32m -J-XX:MaxPermSize=384m -J-Xverify:none
#MEMORYSETTINGS1='-J-Xms1g'
#MEMORYSETTINGS2='-J-Xmx1g'
LOOKANDFEELSETTINGS=-J-Dapple.awt.graphics.UseQuartz=true -J-Dapple.laf.useScreenMenuBar=true -J-Dswing.aatext=true
GCSETTINGS=-J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+UseAdaptiveSizePolicy
# Use the quoting mess to handle spaces in the path
THISDIR=`dirname "$0"`
cd "$THISDIR"
cd x3deditor32/bin
sh x3deditor32 -J-client -J-Dsun.java2d.opengl=true -J-Dorg.netbeans.ProxyClassLoader.level=1000 $GCSETTINGS $LOOKANDFEELSETTINGS "$MEMORYSETTINGS0" "$MEMORYSETTINGS1" "$MEMORYSETTINGS2" -J-Djava.endorsed.dirs=endorsedjars
Я прочитал здесь http://edutechwiki.unige.ch/en/X3D-Edit что мне следует использовать 32-разрядную версию JDK, но я не смог найти 32-разрядную версию JDK 7 для OSX!
Как это исправить?
1 ответ
Проблема в том, что Bash интерпретирует значения, которые также содержат пробелы. Чтобы исправить это:
Значения переменных заключите в кавычки, например: MEMORYSETTINGS0="-J-Xss2m -J-Xms32m -J-Xmx2g -J-XX:PermSize=32m -J-XX:MaxPermSize=384m -J-Xverify: нет"
Затем удалите кавычки, где переменные фактически используются, например:
sh x3deditor32 -J-клиент -J-Dsun.java2d.opengl=true -J-Dorg.netbeans.ProxyClassLoader.level=1000 $GCSETTINGS $LOOKANDFEELSETTINGS $MEMORYSETTINGS0 $MEMORYSETTINGS1 $MEMORYSETTINGS2 -ejorsjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjljjjjjjjjjjjjljjjjjjjjjjjjjjj D D D D D D D D D D D D D D D D D
Вот исправленная версия:
https://gist.github.com/aodhol/53d3a0f786571cc620c4
Обратите внимание, что здесь также есть исправление проблемы, с которой сталкивались некоторые люди, когда они получили ошибку:
'line 5: /javaVersionCheck.sh: No such file or directory'
разрешить выполнение файла.command непосредственно в оконной среде, а не в терминале.