gpt4 book ai didi

windows-services - 在 Windows 上 Play Framework 2 阶段任务, "The input line is too long"

转载 作者:行者123 更新时间:2023-12-03 11:33:25 25 4
gpt4 key购买 nike

我正在尝试使用“stage”任务在 Windows Server Server 2012 上 Play 2 应用程序,目的是将其包装在服务中,以便在服务器重新启动时应用程序将自动运行。但是,在运行该应用程序时,我收到以下消息:

The input line is too long.
The syntax of the command is incorrect.

这是因为 Windows 有一个 limit of around 8000命令行指令的字符,但似乎 Play 阶段命令通过将类路径作为参数传递来超出此范围。

将“stage”文件夹复制到 c:\可能会解决这个问题(因为它会减少类路径的大小),但我希望有一个更优雅的解决方案。

有没有人找到解决方法?或者,人们对在 Windows 上运行 Play 应用程序有什么建议,以便在服务器重新启动时它会自动运行。

谢谢。

最佳答案

更新:sbt native packager 现在提供了一些内置的解决方案,请参阅下面的 NieMaszNic 的答案。

这是一个已知问题,在 SBT native 打包程序(生成启动脚本)中进行跟踪:

https://github.com/sbt/sbt-native-packager/issues/72

我解决这个问题的建议是编写您自己的使用通配符类路径匹配器的启动批处理脚本。你可以把这个脚本放在dist您的 Play 项目中的目录,它将最终与您的应用程序打包在一起。该脚本可能如下所示:

java %1 -cp "./lib/*;" play.core.server.NettyServer .

请注意,如果您使用通配符类路径匹配器,则不能再依赖类路径排序与开发模式中的相同。无论如何,您不应该依赖类路径排序,但人们不可避免地会这样做。

关于windows-services - 在 Windows 上 Play Framework 2 阶段任务, "The input line is too long",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21429234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com