`/usr/bin/buildclasspath`执行`/usr/bin/groovy时的消息`

`/usr/bin/buildclasspath`执行`/usr/bin/groovy时的消息`,groovy,fedora20,Groovy,Fedora20,您希望我向您介绍哪个“Java扩展”?“一些特定的罐子”?我没有具体说明。我真的很喜欢这些毫无意义的信息 更新1: 两者: # groovy --version /usr/bin/build-classpath: Could not find /lib/jvm/java Java extension for this JVM /usr/bin/build-classpath: error: Some specified jars were not found Groovy Version: 1.

您希望我向您介绍哪个“Java扩展”?“一些特定的罐子”?我没有具体说明。我真的很喜欢这些毫无意义的信息

更新1: 两者:

# groovy --version
/usr/bin/build-classpath: Could not find /lib/jvm/java Java extension for this JVM
/usr/bin/build-classpath: error: Some specified jars were not found
Groovy Version: 1.8.9 JVM: 1.7.0_79 Vendor: Oracle Corporation OS: Linux

# java -version
java version "1.7.0_79"
OpenJDK Runtime Environment (fedora-2.5.5.0.fc20-x86_64 u79-b14)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)
如中所述,没有任何帮助

对于这两个
,都有一个程序提供“java[c]”
,它是OpenJDK

也没用

更新2: 我安装并设置为备选方案:

# alternatives --config java
# alternatives --config javac
无济于事

更新3: 第一条消息来自
/usr/share/javautils/java函数:

# java -version
java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

看起来你的Java安装搞砸了。建议使用替代工具进行配置,以仅选择OpenJDK。此stackoverflow问题中指出了解决此问题的进一步尝试。但这似乎归结为不安装OracleJDK

编辑:
根据评论,如果这些链接没有帮助,我会在我的答案中添加这个变通方法:即从解包下载zip,将JAVA_HOME设置为正确的JDK目录,并使用其中的shell脚本。页面上还对GVM进行了描述,与纯zip相比,使用GVM安装Groovy要舒服一些。尽管如此,这还是绕开了Fedora上的正确安装,因此只有在没有其他功能的情况下,或者如果您只想在本地安装,才应该使用它

卸载FC的Groovy并遵循(非常感谢!)上的说明完成了以下任务:

#!/bin/sh
#
# Small script to build a classpath depending on the JVM used
#
# JPackage Project <http://www.jpackage.org/>
#
# $Id: build-classpath,v 1.2 2005/09/17 07:06:19 david Exp $

# Import java functions
[ -r "/usr/share/java-utils/java-functions" ] \
 &&  . "/usr/share/java-utils/java-functions" || exit 1

# Prints help message
usage() {
cat >&2 << EOF_USAGE
Usage: $0 <jar1> [<jar2> .. <jarn>]
jarX: name of a jar
      Example: jndi
EOF_USAGE
exit 2
}

[ "$#" -eq "0" ] && usage

set_javacmd || exit 3

check_java_env || exit 4

set_jvm_dirs || exit 5

_ALLFOUND="true"

for extension in "$@" ; do
    unset _JARS
    extension=$(find_jar $extension)
    if [ "$?" = 0 ] ; then
        if [ -d "$extension" ] ; then
            # Brute-force approach. If we can't specify a single jar, we can as
            # well take everything in the directory
            # This may create duplicates if symlinks point back inside the
            # directory structure, but who cares
            _JARS=$(find "$extension" -follow -name "*.jar" -type f -printf %p: 2>/dev/null)
        else
            _JARS=$extension:
        fi
        _CLASSPATH=$_CLASSPATH$_JARS
    else
        # Defer failure to get list of all errors in one shot
        _ALLFOUND="false"
    fi
done

# Cleanup trailing :
_CLASSPATH="$(echo $_CLASSPATH | sed 's+:$++g')"

# Echo classpath whether it's complete or not
# Apps that do not care about a full classpath can redirect errors to /dev/null
echo "$_CLASSPATH"

if [ "$_ALLFOUND" = "true" ] ; then
    exit 0
else
    echo "$0: error: Some specified jars were not found" >&2
    exit 6
fi

因此,可能不是您的java,而是您的groovy安装出了问题。我只能建议一种解决方法,那就是使用来自的zip分发版,并改用它。由于Java正在工作,您可能必须将Java_设置为HOME,否则您应该能够直接从该zip使用groovy。我一开始并没有建议这样做,因为您尝试了系统变量和包管理器。但是,由于这些事情失败得如此严重…非常感谢链接!如果你回答我,我就接受。如果不是,我会接受我自己的。
#!/bin/sh
#
# Small script to build a classpath depending on the JVM used
#
# JPackage Project <http://www.jpackage.org/>
#
# $Id: build-classpath,v 1.2 2005/09/17 07:06:19 david Exp $

# Import java functions
[ -r "/usr/share/java-utils/java-functions" ] \
 &&  . "/usr/share/java-utils/java-functions" || exit 1

# Prints help message
usage() {
cat >&2 << EOF_USAGE
Usage: $0 <jar1> [<jar2> .. <jarn>]
jarX: name of a jar
      Example: jndi
EOF_USAGE
exit 2
}

[ "$#" -eq "0" ] && usage

set_javacmd || exit 3

check_java_env || exit 4

set_jvm_dirs || exit 5

_ALLFOUND="true"

for extension in "$@" ; do
    unset _JARS
    extension=$(find_jar $extension)
    if [ "$?" = 0 ] ; then
        if [ -d "$extension" ] ; then
            # Brute-force approach. If we can't specify a single jar, we can as
            # well take everything in the directory
            # This may create duplicates if symlinks point back inside the
            # directory structure, but who cares
            _JARS=$(find "$extension" -follow -name "*.jar" -type f -printf %p: 2>/dev/null)
        else
            _JARS=$extension:
        fi
        _CLASSPATH=$_CLASSPATH$_JARS
    else
        # Defer failure to get list of all errors in one shot
        _ALLFOUND="false"
    fi
done

# Cleanup trailing :
_CLASSPATH="$(echo $_CLASSPATH | sed 's+:$++g')"

# Echo classpath whether it's complete or not
# Apps that do not care about a full classpath can redirect errors to /dev/null
echo "$_CLASSPATH"

if [ "$_ALLFOUND" = "true" ] ; then
    exit 0
else
    echo "$0: error: Some specified jars were not found" >&2
    exit 6
fi
# yum erase groovy
...
# curl -s get.gvmtool.net | bash
...
# source "/root/.gvm/bin/gvm-init.sh"
# gvm install groovy
...
# groovy -version
Groovy Version: 2.4.4 JVM: 1.8.0_51 Vendor: Oracle Corporation OS: Linux