我读过其他所有标题相同的文章,但我不在嵌入式系统上,我的includes和环境变量设置正确。在RHEL7.5上运行时,我的getenv程序不起作用,所以我创建了一个C应用程序,它具有打印JAVA_HOME环境变量的简单功能。它从C程序返回空值,但环境变量已被设置(已被永久设置),并且在我的putty终端中读取结果良好。这正是我正在运行的(只是路径缩短了):
C:
#include <stdio.h>
#include <stdlib.h>
int main () {
printf("JAVA HOME : %s\n", getenv("JAVA_HOME"));
return(0);
}
生成文件:
CC=gcc
CFLAGS=-c -Wall -I/path/to/includes
BIN=/path/to/bin
INCLUDE=/path/to/includes
default : $(BIN)/testEnv
testEnv.o : testEnv.c
$(CC) $(CFLAGS) testEnv.c
#------------ Make testEnv-------------------
$(BIN)/testEnv: testEnv.o
$(CC) -o $@ \
testEnv.o
终端:
>bin/testEnv
JAVA HOME : (null)
>echo $JAVA_HOME
/path/to/java
有没有人有什么新的我应该检查或知道问题可能是什么?谢谢。
最佳答案
您的JAVA_HOME
变量可能是shell变量,而不是导出的。在从此shell启动应用程序之前,请确保导出它:
export JAVA_HOME
关于c - 尽管终端回显有效,C程序getenv()返回null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58507895/