realpath: : No such file or directory
Jung-uk Kim
jkim at FreeBSD.org
Thu May 13 22:46:19 UTC 2010
On Wednesday 12 May 2010 03:50 pm, Mike Jakubik wrote:
> On 5/12/2010 3:07 PM, Kostik Belousov wrote:
> > The realpath(1) was given an empty path.
> >
> > According to SUSv4, realpath(3) should return ENOENT if "A
> > component of file_name does not name an existing file or
> > file_name points to an empty string." This was recently brought
> > into standard compliance.
> >
> > Why javavm passes empty path to realpath(1), I do not know.
>
> It appears the cause is because ${JAVA_HOME} is an empty variable.
>
> ---
> #
> # Set up an appropriate JAVA_HOME
> #
> setJavaHome() {
>
> echo Debug JAVA_HOME: ${JAVA_HOME}
> echo Debug JAVAVM_PREFIX: ${_JAVAVM_PREFIX}
>
> # Use JAVA_HOME if it's set, unless its set to /usr/local
> if [ -n "${JAVA_HOME}" -a \
> "`realpath "${JAVA_HOME}"`" != "`realpath
> "${_JAVAVM_PREFIX}"`" ]; then
> if [ -n "${JAVA_HOME}" -a -f
> "${JAVA_HOME}/bin/${_JAVAVM_PROG}" ]; then
> _JAVAVM_PROG_PATH="${JAVA_HOME}/bin"
> return 0
> elif [ -n "${JAVA_HOME}" -a \
> -f "${JAVA_HOME}/jre/bin/${_JAVAVM_PROG}" ]; then
> _JAVAVM_PROG_PATH="${JAVA_HOME}/jre/bin"
> return 0
> fi
> fi
>
> unset JAVA_HOME
> ---
>
> When i run the above:
>
> + setJavaHome
> + echo Debug JAVA_HOME:
> Debug JAVA_HOME:
> + echo Debug JAVAVM_PREFIX: /usr/local
> Debug JAVAVM_PREFIX: /usr/local
> + realpath ''
> realpath: : No such file or directory
The attached patch should fix the annoyance.
Jung-uk Kim
-------------- next part --------------
--- javavmwrapper/Makefile.orig 2010-05-13 15:40:45.000000000 -0400
+++ javavmwrapper/Makefile 2010-05-13 15:31:00.000000000 -0400
@@ -8,7 +8,7 @@
#
PORTNAME= javavmwrapper
-PORTVERSION= 2.3.4
+PORTVERSION= 2.3.5
CATEGORIES= java
MASTER_SITES= # none
DISTFILES= # none
--- javavmwrapper/src/javavmwrapper.sh.orig 2010-01-18 17:42:58.000000000 -0500
+++ javavmwrapper/src/javavmwrapper.sh 2010-05-13 15:30:32.000000000 -0400
@@ -479,16 +479,16 @@
#
setJavaHome() {
# Use JAVA_HOME if it's set, unless its set to %%PREFIX%%
- if [ -n "${JAVA_HOME}" -a \
- "`realpath "${JAVA_HOME}"`" != "`realpath "${_JAVAVM_PREFIX}"`" ]; then
- if [ -n "${JAVA_HOME}" -a -f "${JAVA_HOME}/bin/${_JAVAVM_PROG}" ]; then
- _JAVAVM_PROG_PATH="${JAVA_HOME}/bin"
- return 0
- elif [ -n "${JAVA_HOME}" -a \
- -f "${JAVA_HOME}/jre/bin/${_JAVAVM_PROG}" ]; then
- _JAVAVM_PROG_PATH="${JAVA_HOME}/jre/bin"
- return 0
- fi
+ if [ -n "${JAVA_HOME}" ]; then
+ if [ "`realpath "${JAVA_HOME}"`" != "`realpath "${_JAVAVM_PREFIX}"`" ]; then
+ if [ -f "${JAVA_HOME}/bin/${_JAVAVM_PROG}" ]; then
+ _JAVAVM_PROG_PATH="${JAVA_HOME}/bin"
+ return 0
+ elif [ -f "${JAVA_HOME}/jre/bin/${_JAVAVM_PROG}" ]; then
+ _JAVAVM_PROG_PATH="${JAVA_HOME}/jre/bin"
+ return 0
+ fi
+ fi
fi
unset JAVA_HOME
More information about the freebsd-java
mailing list