我想在一个命令中获取Linux中的Java版本.
我是awk的新手所以我正在尝试类似的东西
java -version|awk '{print$3}'
Run Code Online (Sandbox Code Playgroud)
但这并没有返回版本.我如何1.6.0_21从下面的Java版本输出中获取?
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)
Run Code Online (Sandbox Code Playgroud) 我创建了一个需要Java 7的.jar.我有Java 7(JDK和JRE),我可以双击运行.jar.但是,我想将其打包成一个应用程序.
我尝试过:使用Apple的Jar Bundler工具,我成功创建了一个应用程序; 然而,当我运行它时,它会很快出现并在码头中消失.当我JavaApplicationStub从终端运行内部文件时,我得到:
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/lcmmun/kiosk/gui/Kiosk : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at apple.launcher.LaunchRunner.loadMainMethod(LaunchRunner.java:56)
at apple.launcher.LaunchRunner.run(LaunchRunner.java:112)
at apple.launcher.LaunchRunner.callMain(LaunchRunner.java:51)
at apple.launcher.JavaApplicationLauncher.launch(JavaApplicationLauncher.java:52)
Run Code Online (Sandbox Code Playgroud)
根据" unsupportedclassversionerror不支持major.minor版本51.0无法加载类 ",意味着我没有安装Java 7.但是我愿意.
所以我的假设是JavaApplicationStubJava 7不兼容.
我也听说过要完成同样任务的ANT任务,但它似乎太复杂了,我不知道如何使用ANT.如果这确实是解决方案,我会很乐意学习.
编辑:我现在也尝试过Eclipse的Export> Other> Mac OS Application Bundle.这也失败了.
我正在运行10.8 Mountain …
我正在使用ansible编写一个测试用例.总共有9台服务器,我需要检查安装的java版本是否为1.7.0?
如果它小于1.7.0,则测试用例应该失败.
任何人都可以帮我写这个测试用例,因为我对ansible很新.
提前致谢
有人能告诉我为什么这个简单的命令找不到输出"java版本"?
if java -version | grep -q "java version" ; then
echo "Java installed."
else
echo "Java NOT installed!"
fi
Run Code Online (Sandbox Code Playgroud)
输出java -version如下
java version "1.8.0_77"
Java(TM) SE Runtime Environment (build 1.8.0_77-b03)
Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode)
Run Code Online (Sandbox Code Playgroud) 我安装了 UR-Sim 文件(https://www.universal-robots.com/download/software-cb-series/simulator-linux/offline-simulator-cb-series-linux-ursim-1816941tarqz/)。我使用的是 Ubuntu 22.04。
当我运行时,$ ./install.sh我收到了错误$ Installed java version is too old, exiting
,所以我在 install.sh 中替换了 needToInstallJava() 函数
needToInstallJava() {
echo "Checking java version"
if command -v java; then
# source /sf/ask/513432811/
version=$(java -version 2>&1 | awk -F '"' '/version/ {print $2}')
echo "Stripping the front end"
majorVersion=${version%%.*}
echo Java major version "$majorVersion"
if [ "`echo "$majorVersion > 1.6" | bc`" -eq 1 ]; then
echo "java version accepted"
return 0
fi
fi
return …Run Code Online (Sandbox Code Playgroud)