วิธีแก้ปัญหาที่ Cerin จัดหาให้การนำเข้าทุกครั้งที่เกิดปัญหานี้อาจน่าเบื่อ
ดังนั้นฉันจึงใช้สคริปต์ที่ควบคุมว่าการตั้งค่าพื้นที่ทำงานออกหรือไม่: ถ้าไม่ให้คืนค่าเป็นค่าเริ่มต้น
ฉันมีไอคอนทางลัด eclipse ที่แผงด้านบนที่ดำเนินการ:
/opt/eclipse/checkWorkspace && /opt/eclipse/eclipse
Script checkWorkspaceเป็นตัวแบ่ง:
#!/bin/bash
ECLIPSE_CONFIG_PATH="/opt/eclipse/configuration"
ECLIPSE_CONFIG_FILE="config.ini"
ECLIPSE_CONFIG_SETTING="osgi.instance.area.default"
DEFAULT_WORKSPACE_PATH="@user.home/workspace"
ECLIPSE_LOG="/var/log/eclipse.log"
cd ${ECLIPSE_CONFIG_PATH}
function sedeasy {
sed -i "s/$(echo $1 | sed -e 's/\([[\/.*]\|\]\)/\\&/g')/$(echo $2 | sed -e 's/[\/&]/\\&/g')/g" $3
}
WORKSPACE_EXISTS=$(cat ${ECLIPSE_CONFIG_FILE} | grep ${ECLIPSE_CONFIG_SETTING})
# If workspace setting doesn't exists
if [ -z "$WORKSPACE_EXISTS" ]; then
echo "worskspace setting not exists, resetting to default." >> ${ECLIPSE_LOG}
newConf=${ECLIPSE_CONFIG_SETTING}"="${DEFAULT_WORKSPACE_PATH}
echo ${newConf} >> ${ECLIPSE_CONFIG_FILE}
else
# if setting exist but it is empty
vals=(${WORKSPACE_EXISTS//=/ })
length=$(echo ${#vals[@]})
if [ "${length}" -lt 2 ]; then
newConf=${ECLIPSE_CONFIG_SETTING}"="${DEFAULT_WORKSPACE_PATH}
confToReplace=$(echo ${vals[0]})
sedeasy ${confToReplace} ${newConf} ${ECLIPSE_CONFIG_FILE}
echo "worskspace exists but is empty, resetting to default." >> ${ECLIPSE_LOG}
else
echo "Worskspace already set:" "${vals[1]}"
fi
fi
บางทีอาจเป็นแบบเซมมิเดีย แต่ใช้ได้ผล