Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获得;初始化VM时出错";_Java_Linux_Shell_Unix_Solaris - Fatal编程技术网

Java 获得;初始化VM时出错";

Java 获得;初始化VM时出错";,java,linux,shell,unix,solaris,Java,Linux,Shell,Unix,Solaris,我有一个由Autosys作业调度器调用的遗留shell脚本。在脚本中,他们正在调用一个jar文件 res="`$JAVA_HOME/bin/java ....`" echo >$res< 因此,在shell脚本中,我尝试打印当前目录,如下所示 echo "PWD:" "$PWD" # Nothing gets printed. echo "USER:" "$USER" # User id is getting printed if [ -d "/export/home/a

我有一个由Autosys作业调度器调用的遗留shell脚本。在脚本中,他们正在调用一个jar文件

res="`$JAVA_HOME/bin/java ....`"
echo >$res<
因此,在shell脚本中,我尝试打印当前目录,如下所示

echo "PWD:" "$PWD"    # Nothing gets printed.
echo "USER:" "$USER"  # User id is getting printed

if [ -d "/export/home/abc/" ]; then
    echo "Directory present"    # gets printed
    echo `ls -ltr`              # total 3 gets printed
    echo `cd /export/abc/def`
    echo `pwd`                  # nothing gets printed
fi
所有类路径都是在脚本本身中设置的,并且类路径看起来很好。我不明白这里可能有什么问题


还请注意,此脚本正由Autosys作业调度器调用的另一个脚本调用。

这是一种预期行为

脚本在子shell中运行,无法更改父shell工作目录。当它结束时,其效果将丢失


谢谢安德鲁的提示

正如在文章中所说,这是一个遗留脚本,每个脚本中都有数千行代码,这使得我们的分析很困难。但最后我们发现我们出错的过程是由另一个用户启动的。该用户没有访问父文件夹的权限,因此我们得到了

Could not determine current working directory.
我将父文件夹的权限授予了该用户,它成功了。
感谢大家…

echo
cd/export/abc/def
-这不会更改脚本的当前版本directory@Mat:echo
pwd
应该打印一些东西。但是没有打印任何东西。有什么原因吗?另外,如果我为一个调用另一个脚本的脚本提供源代码,它们会在同一个shell中执行,还是我也需要为内部脚本提供源代码?@NJMR,如果您提供源代码,并且提供嵌套源代码,则所有脚本都将是同一个shell。如果嵌套脚本作为bash脚本运行,那么它将是不同的shell。另外,如果您使用阻塞命令来生成shell脚本,那么shell脚本将被阻塞,并且只有在阻塞可执行文件发出后,才会执行下一部分finishes@NJMR不,它不会删除任何目录。你确定吗?进程必须在某个目录中启动,并且不可能将当前工作目录更改为不存在的目录。让进程无法确定其当前工作目录的唯一方法是将该目录从进程下删除。
Could not determine current working directory.