当客户端运行时,我的服务器端显示 nullPointerException java
my server-side shows nullPointerException when client-side runs java
我有一个带有 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 但没有任何效果。我在其他 post 中读到尝试编辑 ~/.bash_profile 但是 Linux Mint 没有那个文件。
非常感谢任何建议。
客户端抛出NullPointerException
是因为环境变量设置不正确,null
传给了File
的构造函数。
将MY_VAR
放入~/.profile
并注意该文件仅在您登录时加载一次。因此,在设置新的环境变量后,请务必注销并重新登录。如果该文件不存在,请创建它。
您可以使用以下方法测试它是否已设置:
$ env | grep MY_VAR
MY_VAR=value
尝试将创建 env 变量和 运行 java 应用程序的命令放入同一个 sh 脚本或同一个 "sandbox"。 IE。您可以将 java 命令放入 /etc/profile.d/my_env_vars.sh 或创建另一个 sh 脚本并将 /etc/profile.d/my_env_vars.sh 和之后的调用放入其中运行 java 应用程序。
您可以尝试在您的客户端中放置变量 filepath
的 println
吗?
如果它不打印路径,首先检查客户端和服务器是否能够使用 ssh
相互连接。
我认为问题是因为客户端和服务器之间没有连接。
我有一个带有 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 但没有任何效果。我在其他 post 中读到尝试编辑 ~/.bash_profile 但是 Linux Mint 没有那个文件。
非常感谢任何建议。
客户端抛出NullPointerException
是因为环境变量设置不正确,null
传给了File
的构造函数。
将MY_VAR
放入~/.profile
并注意该文件仅在您登录时加载一次。因此,在设置新的环境变量后,请务必注销并重新登录。如果该文件不存在,请创建它。
您可以使用以下方法测试它是否已设置:
$ env | grep MY_VAR
MY_VAR=value
尝试将创建 env 变量和 运行 java 应用程序的命令放入同一个 sh 脚本或同一个 "sandbox"。 IE。您可以将 java 命令放入 /etc/profile.d/my_env_vars.sh 或创建另一个 sh 脚本并将 /etc/profile.d/my_env_vars.sh 和之后的调用放入其中运行 java 应用程序。
您可以尝试在您的客户端中放置变量 filepath
的 println
吗?
如果它不打印路径,首先检查客户端和服务器是否能够使用 ssh
相互连接。
我认为问题是因为客户端和服务器之间没有连接。