【发布时间】:2018-01-29 04:26:06
【问题描述】:
我有一台装有 Linux Mint OS 的服务器,它有一个服务器端 Maven 项目,可以读取一些环境变量。
环境变量在 /etc/profile.d/my_env_vars.sh 中声明:
export MY_VAR=/opt/my_app
export PATH=$MY_VAR:$PATH
我的服务器端有一个功能,当我从 eclipse(安装在我的服务器中)运行它时,它可以正常工作,没有错误。
public File convert( byte [] image) throws IOException {
String filePath = System.getenv("MY_VAR");
File imageFile = File.createTempFile("TEMP", "tmp", new File(filePath));
...
return imagenFile;
}
我的客户端也是一个 Maven 项目。它向上面的函数发送一个 byte[] 图像,服务器返回一个结果,但是我得到了 NullPointerException 错误:
java.lang.NullPointerException
java.io.File.<init>(File.java:277)
the second line of my function File imageFile = File.createTempFile("TEMP","temp...
我立即在我的服务器终端中通过 echo $MY_VAR 验证了环境变量,它给了我正确的值 (/opt/my_app)
为什么我的函数在服务器端正常工作,但在客户端却出现 nullPointerException 错误?
我尝试将其他文件中的环境变量声明为 ~/.bashrc ~/.profile /etc/bash.bashrc,但没有任何效果。我在其他帖子中阅读以尝试编辑 ~/.bash_profile 但 Linux Mint 没有该文件。
我非常感谢任何建议。
【问题讨论】:
-
您是如何运行您的服务器应用程序的? java -jar server-app.jar 在命令行中???首先,您必须确定服务器应用程序的运行方式,然后仔细检查您的 .profile。 2nd,添加更多日志到您的应用程序中进行跟踪。
-
感谢您的回答。我用 Wildfly8 运行我的服务器端。我在终端中通过以下方式启动它:sudo ./standalone -b 0.0.0.0。一旦启动,我可以在浏览器中检查应用程序,在终端中我可以检查来自浏览器或客户端的任何请求。我的客户端在树莓派中工作。但它没有任何操作系统登录
标签: java bash nullpointerexception environment-variables linux-mint