我有多个tomcat 6实例在同一台服务器(Linux)上运行,它按预期工作.我试图找出关于设置CATALINA_HOME和CATALINA_BASE变量的标准做法.
在我的tomcat安装,我已经设置CATALINA_HOME为指向一个"共同"的文件夹(比如/tomcat6)和CATALINA_BASE可变取决于实例名称(比如不同/tomcat_instance1,/tomcat_instance2)
我的问题是:
CATALINA_HOME并取消
CATALINA_BASE(反之亦然)?许多基于java的应用程序需要设置JAVA_HOME env变量.这个变量的目的是什么?
我想编写一些检查已部署WAR的XML Spring配置的测试.不幸的是,某些bean需要设置一些环境变量或系统属性.在使用带有@ContextConfiguration的方便测试样式时,如何在初始化spring bean之前设置环境变量?
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:whereever/context.xml")
public class TestWarSpringContext { ... }
Run Code Online (Sandbox Code Playgroud)
如果我使用注释配置应用程序上下文,我没有看到一个钩子,我可以在初始化spring上下文之前执行某些操作.
请考虑以下代码段:
$ SOMEVAR=AAA
$ echo zzz $SOMEVAR zzz
zzz AAA zzz
Run Code Online (Sandbox Code Playgroud)
在这里,我设置$SOMEVAR到AAA第一线-当我赞同它的第二行,我得到的AAA内容符合市场预期.
但是,如果我尝试在同一命令行上指定变量echo:
$ SOMEVAR=BBB echo zzz $SOMEVAR zzz
zzz AAA zzz
Run Code Online (Sandbox Code Playgroud)
......我没有BBB按照我的预期得到 - 我得到旧值(AAA).
这是事情应该如何?如果是这样,那么为什么你可以指定变量LD_PRELOAD=/... program args ...并让它工作?我错过了什么?
我对Linux有点新,我碰巧盲目地运行一些命令,以便完成任务.我认为提出这些类型的问题不会浪费,因为更多的新人会对这些问题有一定的了解.
我最近开始与詹金斯合作,然后我不得不使用这个导出命令来运行jenkins war档案.所以我需要知道'export'命令的作用,以及为什么我们需要在运行jenkins时运行此命令(在jenkins home设置之后).
谢谢!
升级到Laravel 5.2后,我的.env文件值都没有被读取.我按照升级说明进行操作 ; 除了auth.php之外,我的配置文件都没有被更改.它们在之前的版本5.1.19中都运行良好
.env 包含诸如的值
DB_DATABASE=mydb
DB_USERNAME=myuser
Run Code Online (Sandbox Code Playgroud)
config/database.php 包含
'mysql' => [
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
]
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
PDOException: SQLSTATE[HY000] [1045] Access denied for user 'forge'@'localhost' (using password: NO)
Run Code Online (Sandbox Code Playgroud)
显然没有拉我的env配置.这会影响我的每个配置文件,包括第三方,如bugsnag.
我也试过了
php artisan config:clear
php artisan cache:clear
Run Code Online (Sandbox Code Playgroud)
更新
试 php artisan tinker
>>> env('DB_DATABASE')
=> null
>>> getenv('DB_DATABASE')
=> false
>>> config('database.connections.mysql.database')
=> "forge"
>>> dd($_ENV)
[]
Run Code Online (Sandbox Code Playgroud)
我尝试安装Laravel 5.2的新副本.我基本上只复制在我的"app"文件夹中; 没有包含额外的作曲家包.还有同样的问题.我在同一台服务器上有其他Laravel 5.2项目正常工作.
如何在bash脚本中设置全局环境变量?
如果我喜欢的话
#!/bin/bash
FOO=bar
Run Code Online (Sandbox Code Playgroud)
...要么
#!/bin/bash
export FOO=bar
Run Code Online (Sandbox Code Playgroud)
... vars似乎停留在本地环境中,而我希望在脚本执行完毕后继续使用它们.
可能重复:
System属性和环境变量之间的区别是什么
System.getenv()和System.getProperty()有什么区别?
当我们使用Processbuilder运行任何命令时,我们可以设置环境变量,即:
String[] vCmd = { System.getenv("ANT_HOME") + "/bin/ant", "-f",
ANT_BUILD_FILE, TARGET };
ProcessBuilder pb = new ProcessBuilder(vCmd);
Map<String, String> env = pb.environment();
env.put("CLASSPATH",
antHome+"/lib/ant.jar:"
+ antHome+"/lib/ant-launcher.jar:"
+ antHome+"/lib/ant-nodeps.jar:"
);
try{
Process process = pb.start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
pb.wait();
}
catch(Exception e)
System.out.println(e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
如果我在此方法之前使用System.setProperties()设置了一些属性,那么ProcessBuilder启动此进程是否可用?
我需要在运行时在PowerShell脚本中显示所有已配置的环境变量.通常在显示环境变量时,我可以在shell中使用以下其中一种(除了其他技术,但这些很简单):
gci env:*
ls Env:
Run Code Online (Sandbox Code Playgroud)
但是,我从另一个程序调用了一个脚本,当我在脚本中使用上述调用之一时,而不是显示环境变量及其值,而是获取System.Collections.DictionaryEntry类型列表而不是变量及其值.在PowerShell脚本中,如何显示所有环境变量?
$ $ PATH
收益:
-bash:/usr/local/share/npm/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/local/bin:/usr/local/sbin:~/bin:/Library/框架/ Python.framework /版本/电流/斌:在/ usr/bin中:/ bin中:/ usr/sbin目录:/ sbin目录:在/ usr/local/bin目录中:/ opt/X11/bin中:在/ usr /本地/ git的/ bin中: 没有相应的文件和目录