使用Play框架时,击键消失在终端中

时间:2013-09-25 16:15:50

标签: playframework

我最近使用自制软件下载了Play。我第一次这样做时,brew公式下载了旧版本的Play。我修改了公式以下载最新版本(2.2.0)并成功下载。但是,我在下载时遇到了一些问题。

首先,从终端调用play时我一直收到错误:“无法访问jarfile ../Cellar/play2/2.0-RC3/bin/framework/sbt/sbt-launch.jar”。我在网上搜索了这个forum的解决方案。我按照论坛上某人的建议编辑了我的播放文件。我的播放文件现在看起来像这样:

#! /usr/bin/env sh


#PRG="$0"
# resolve relative/absolute symlinks
#while [ -h "$PRG" ] ; do
 # ls=`ls -ld "$PRG"`
   #link=`expr "$ls" : '.*-> \(.*\)$'`
  #if expr "$link" : '/.*' > /dev/null; then
   # PRG="$link"
  #else
   # PRG="`dirname "$PRG"`/$link"
  #fi
#done
#dir=`dirname $0` && dir=$dir/`dirname $PRG`

# Extract possibly relative directory to invoked file
RDIR="$(dirname "$0")"

# Convert to absolute directory
ADIR="$(cd "$RDIR"; pwd)"

# PRG is now absolute path to invoked file
PRG="$ADIR/$(basename "$0")"

# Resolve symlink(s)
while [ -h "$PRG" ] ; do
  PRG=`readlink "$PRG"`
done

if [ -z "$JAVA_HOME" ]; then
  JAVA="java"
else
 JAVA="$JAVA_HOME/bin/java"
fi

# dir is the absolute dir of the resolved link(s)
dir=$(cd "$(dirname "$0")"; cd "$(dirname "$PRG")"; pwd)

if [ -f conf/application.conf -o -f conf/reference.conf ] || [ -d project ]; then
  if test "$1" = "clean-all"; then
    rm -rf target
    rm -rf tmp
    rm -rf logs
    rm -rf dist
    rm -rf project/project
    rm -rf project/target
    if [ $# -ne 1 ]
    then  
     shift
    else
      echo "[info] Done!"
      exit 0
    fi
  fi
  if test "$1" = "stop"; then
    if [ -f RUNNING_PID ]; then
      echo "[info] Stopping application (with PID `cat RUNNING_PID`)..."
      kill `cat RUNNING_PID`

      RESULT=$?

      if test "$RESULT" = 0; then
        echo "[info] Done!"
        exit 0
      else
        echo "[\033[31merror\033[0m] Failed ($RESULT)"
        exit $RESULT
      fi
    else
      echo "[\033[31merror\033[0m] No RUNNING_PID file. Is this application running?"
      exit 1
    fi
  fi

  if test "$1" = "debug"; then
    JPDA_PORT="9999"
    shift      
  fi

  if [ -n "$1" ]; then
    JPDA_PORT="${JPDA_PORT}" $dir/../libexec/framework/build "$@"
  else
    JPDA_PORT="${JPDA_PORT}" $dir/../libexec/framework/build play
  fi

else
  "$JAVA" -Dplay.home=$dir/../libexec/framework -Dsbt.boot.properties=$dir/../libexec/framework/sbt/play.boot.properties ${PLAY_OPTS} -jar $dir/../libexec/framework/sbt/sbt-launch.jar "$@"
fi

这是一个很好的解决方案并解决了我的问题。但是,现在我还有另一个问题,我无法解决。

当我从终端调用播放时一切正常,直到我再次开始输入。我的击键没有显示出来!我在post找到了一个解决方法(类型'重置'),所以我可以继续工作了。

我的问题是为什么我的击键消失了,我该怎么做才能修复它?如果需要其他信息,请与我们联系。我使用的是Mac OS X版本10.7.5。

2 个答案:

答案 0 :(得分:1)

这是一个已知的错误:
Play 2.2 Bash/Shell Bug #1815

修复程序已提交并合并,但尚未在稳定版本中发布。我认为它应该是最新的RC2版本,如果它真的让你烦恼。

如果我没记错的话,问题只发生在play startplay run时。如果你先进入SBT shell,然后给你的启动/运行命令,那么它工作正常。不过我可能会错误地记住这一点。

答案 1 :(得分:0)

只需在终端窗口中盲目输入重置。

peterpilgrim@Peters-MBP.local [506]> peterpilgrim@Peters-MBP.local [506]> peterpilgrim@Peters-MBP.local [506]> [类型重置并点击返回几次]