2015-09-05 18 views
2

我讀題爲書「播放斯卡拉」寫於2013年,並看到一個代碼示例像這樣的:

application.conf文件中:

environment.user = ${USER} 

而且裏面的一些模板文件:

@()(implicit messages: Messages) 
@import java.util.Date 
@import play.api.Play.current 

<footer> 
    lang = @messages.lang.code 
    user = @current.configuration.getString("environment.user") // <<--- this line 
    date = @(new Date().format("yyyy-MM-dd HH:mm")) 
</footer> 

和運行例子後,我得到一個錯誤:

application.conf @ file:/ C:/Users/Maciek/IdeaProjects/play-scala/target/scala-2.11/classes/application.conf:18:無法將替代解析爲值:$ {USER}

我想問一下,什麼是$ {USER}環境變量,它來自哪裏? 爲什麼不起作用?

我知道,在這本書的打版是2.1和我的是2.4.2

回答

2

它更多的操作系統問題。在Linux/Unix上,通常將$USER定義爲當前用戶(誰在運行shell或您的應用程序)。 要bash檢查值做:

# echo $USER 
yourname 

在Windows中,你可以從cmd與檢查:

C:\> echo %USER% 
%USER% 

正如你可以看到它不是我的機器上定義。也許你正在使用Windows並獲得相同的錯誤。您可以在您的操作系統中設置USER環境變量,以便它能夠在conf中找到該值或提供回退值。

+0

我以爲是,它是USER系統環境變量。我試着做同樣的你:echo%USER%但MacOSX和Windows顯示%USER%,所以我很困惑..謝謝! – azalut

+0

那麼,在application.conf中使用$ {}是使用OS環境變量的方式嗎? – azalut

+0

在Mac上,您應該使用以下命令:'echo $ USER',因爲它是Unix。是'$ {}'訪問一個環境變量。如果您想深入瞭解真棒Typesafe配置庫,請查看這裏的文檔:https://github.com/typesafehub/config。乾杯 –