1

最近、homebrew を使用して Play をダウンロードしました。初めてこれを行ったとき、brew フォーミュラは古いバージョンの Play をダウンロードしました。最新バージョン (2.2.0) をダウンロードするように数式を変更したところ、正常にダウンロードされました。ただし、ダウンロードにはいくつかの問題がありました。

まず、ターミナルから play を呼び出すと、「jarfile ../Cellar/play2/2.0-RC3/bin/framework/sbt/sbt-launch.jar にアクセスできません」というエラーが発生し続けました。私はオンラインで検索し、このフォーラムで解決策を見つけました。フォーラムの誰かの提案に従って、プレイ ファイルを編集しました。私の再生ファイルは次のようになります。

#! /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

これは素晴らしい解決策であり、私の問題を解決しました。しかし、今、解決できない別の問題があります。

端末から play を呼び出すと、再び入力を開始するまで、すべてうまくいきます。キーストロークが表示されない! この投稿で回避策 (「リセット」と入力) の解決策を見つけたので、作業を続行できます。

私の質問は、キーストロークが消えるのはなぜですか?それを修正するにはどうすればよいですか? 追加情報が必要な場合はお知らせください。Mac OS X バージョン 10.7.5 を使用しています。

4

2 に答える 2

1

これは既知のバグです:
Play 2.2 Bash/Shell Bug #1815

修正が提出され、マージされましたが、まだ安定版リリースにはなっていません。それが本当にあなたを悩ませているなら、それは最新の RC2 リリースにあるべきだと思います。

私の記憶が正しければ、問題が発生するのはplay startまたはplay run. 最初に SBT シェルに入り、次に start/run コマンドを実行すると、問題なく動作します。私はそれについて記憶違いかもしれません。

于 2014-01-30T16:25:55.007 に答える
0

ターミナル ウィンドウでやみくもに「reset」と入力します。

peterpilgrim@Peters-MBP.local [506] > peterpilgrim@Peters-MBP.local [506] >peterpilgrim@Peters-MBP.local [506] > [リセットを入力してリターンを数回押す]

于 2014-01-30T10:27:48.463 に答える