以编程方式确定AppEngine for Java环境

有没有办法在运行时以编程方式告诉Google App Engine应用程序是在本地运行还是托管? 我正在寻找一种在本地开发环境中运行时调用一些自定义存根代码的方法,并在运行托管时进行不同的调用。

您可以在AppEngine 1.3中使用com.google.appengine.api.utils.SystemProperty

 import com.google.appengine.api.utils.SystemProperty; import static com.google.appengine.api.utils.SystemProperty.environment; import static com.google.appengine.api.utils.SystemProperty.Environment.Value.Development; import static com.google.appengine.api.utils.SystemProperty.Environment.Value.Production; SystemProperty.Environment.Value env = environment.value(); if (env == Production) { //prod only code ... } else if(env == Development) { //dev only code ... } 

对于较新的AppEngine flex变体,您可以查询Google设置的env-var:

 String gaeAppId = System.getenv("GCLOUD_PROJECT")); // gaeAppId contains either the name of app/project, or null (not running on App Engine)