OS3中的X3D-Edit运行脚本问题

时间:2014-02-05 21:11:44

标签: macos x3d

我正在尝试使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#Tips我应该使用32位JDK,但我找不到OSX的任何JDK 7 32位版本!

如何解决?

1 个答案:

答案 0 :(得分:1)

问题是Bash正在解释值,它们也包含空格。解决这个问题:

使用引号括起变量值,例如:     MEMORYSETTINGS0 =" -J-Xss2m -J-Xms32m -J-Xmx2g -J-XX:PermSize = 32m -J-XX:MaxPermSize = 384m -J-Xverify:none"

然后删除实际使用变量的引号,例如:

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

以下是更正后的版本:

https://gist.github.com/aodhol/53d3a0f786571cc620c4

注意,它还解决了一些人遇到错误的问题:

'line 5: /javaVersionCheck.sh: No such file or directory'

允许.command文件直接在窗口环境中而不是在终端上执行。