当我执行“运行”命令时,如何更改Play使用的默认端口(9000)?

在播放控制台上发出“运行”命令时,如何更改开发模式下的播放框架使用的默认端口。

这是为了playframework 2.0testing版。

在命令行或application.conf中使用http.portconfiguration参数似乎不起作用:

C:\dev\prototype\activiti-preso>play run --http.port=8080 [info] Loading project definition from C:\dev\prototype\activiti-preso\project [info] Set current project to activiti-preso (in build file:/C:/dev/prototype/activiti-preso/) Windows, really? Ok, disabling colors. --- (Running the application from SBT, auto-reloading is enabled) --- [error] org.jboss.netty.channel.ChannelException: Failed to bind to: 0.0.0.0/0.0.0.0:9000 [error] Use 'last' for the full log. 

播放1.x

更改conf/application.conf文件中的http.port值或传递它的命令行:

 play run --http.port=8080 

玩2.x

播放2.x是一个sbt插件,所以下面的命令实际上只是sbt命令。 你可以使用任何sbt启动器(例如sbtplay或者activator )。 下面的命令使用sbt启动器,但您可以将其replace为您select的sbt启动器。

播放2.x – 开发模式

对于浏览器重新加载模式:

 sbt "run 8080" 

对于连续重装模式:

 sbt "~run 8080" 

播放2.x – debugging模式

要在端口8080上使用http侦听器以debugging模式运行,请运行:

 sbt -jvm-debug 9999 "run 8080" 

播放2.x – 产品模式

以产品模式开始:

 sbt "start -Dhttp.port=8080" 

播放2.x – 分期分发

创build一个分阶段分发:

 sbt stage 

对于Play 2.0.x和2.1.x,使用target/start脚本(仅适用于Unix):

 target/start -Dhttp.port=8080 

对于Play 2.2.x和2.3.x,请在target/universal/stage/bin目录中使用适当的启动脚本:

 target/universal/stage/bin/[appname] -Dhttp.port=8080 

在Windows上使用Play 2.2.x和2.3.x:

 target\universal\stage\bin\[appname].bat -Dhttp.port=8080 

播放2.x – 邮编分发

要创build一个zip分配:

 sbt dist 

对于Play 2.0.x和2.1.x,在提取的zip中使用start脚本(仅适用于Unix):

 start -Dhttp.port=8080 

对于Play 2.2.x,请在[appname]-[version]/bin目录中使用相应的脚本:

 [appname]-[version]/bin/[appname] -Dhttp.port=8080 

在Windows上使用Play 2.2.x:

 [appname]-[version]\bin\[appname].bat -Dhttp.port=8080 

玩2.0-RC4

在要运行的播放命令周围加上引号非常重要。 在我的情况下,没有报价的游戏仍然会在9000港口上运行。

 play "run 8080" 

或者,你可以从游戏控制台运行以下命令(键入'play'进入控制台)

 run 8080 

版本2.0.3

  • 转到项目目录,只是说 (之后没有)。 这将打开播放控制台。

  • 接下来,说运行8080 。 这将开始播放端口8080。

我希望这有帮助。

对于具有可分发的tar文件的Windows上的Play 2.2.x,我在可分发的根目录中创build了一个名为{PROJECT_NAME} _config.txt的文件,并添加了:

 -Dhttp.port=8080 

{PROJECT_NAME}应该replace为您项目的名称。 然后照常在bin \目录中启动{PROJECT_NAME} .bat脚本。

对于Play 2.3.x

激活剂“运行-Dhttp.port = 9001”

您还可以在项目目录中的.sbtopts中设置HTTP端口:

 -Dhttp.port=9001 

那么你不必记得把它每次添加到run任务。

testing与播放2.1.1。

在Windows上播放2.2.0

使用zip分发(使用“dist”命令生成的),我能够更改启动端口的唯一方法是首先设置JAVA_OPTS,然后启动应用程序。

例如,从命令行

 set JAVA_OPTS=-Dhttp.port=9002 bin\myapp.bat 

myapp.bat是由“dist”命令创build的batch file。

以下将始终忽略我的http.port参数,并尝试启动默认端口,9000

 bin\myapp.bat -Dhttp.port=9002 

但是,我注意到,这在Linux / OSX上正常工作,在请求的端口上启动:

 ./bin/myapp -Dhttp.port=9002 

在Windows上,也许玩“跑9001”将无法正常工作。 你必须改变play.bat文件。 见票

它还没有在testing版本中工作。 将在即将发布的版本中添加。

在今天(11月25日)推出的提交中,您现在可以在runstart sbt命令之后立即指定一个端口号。

例如

play run 8080play start 8080

播放默认为端口9000

从游戏控制台,你只需要键入运行8888,如果你想从端口8888运行它。

 play> run 8888 

对于Play 2.5.x

 sbt "-Dhttp.port=9002" 

然后

 run 

为了玩2.5.x

步骤1:使用control + D停止netty服务器(如果正在运行)

第2步:去sbt-dist / conf

第3步:用这个编辑这个文件'sbtConfig.txt'

 -Dhttp.port=9005 

第4步:启动服务器

第五步: http:// host:9005 /

在Windows上,我使用这样一个start.bat文件:

 java -Dhttp.port=9001 -DapplyEvolutions.default=true -cp "./lib/*;" play.core.server.NettyServer "." 

-DapplyEvolutions.default = true告诉进化自动应用进化而不要求确认。 当然,在生产环境中谨慎使用…

Windows上的Play 2.2.1支持PLAY_OPTS环境variables。 Play的play.bat文件包含这一行:

 java -Dsbt.ivy.home="%~dp0repository" -Dplay.home="%~dp0framework" -Dsbt.boot.properties="%fp%framework/sbt/play.boot.properties" %PLAY_OPTS% -jar "%~dp0framework\sbt\sbt-launch.jar" %* 

所以要在9002端口上运行

 set PLAY_OPTS=-Dhttp.port=9002 play run 

使用2.3.7 Play框架进行testing。 效果很好。

 ./{application}/bin/{executable} -Dhttp.port=5000 

我们不能更改avtivator的应用程序端口,但可以从命令行激活器“〜运行8080”

但是要从激活器运行在诗人9000上,我们需要停止正在使用这个端口的应用程序。 我们可以使用这个应用程序来查找并结束进程https://technet.microsoft.com/en-in/sysinternals/bb897437.aspx

在此之后,我们可以运行,它会成功。

我做到了 sudo是必要的。

 $ sudo play debug -Dhttp.port=80 ... [MyPlayApp] $ run 

编辑:我有问题,因为使用sudo所以照顾。 最后我清理了这个项目,而且我还没有使用这个技巧。

我们正在使用Play版本2.5.6。

要更改端口,请转到您的项目根文件夹,然后在命令提示符/terminal中点击: activator "run 8008"

就是这样。