我的开发团队最近被迫转到我们无法完全访问服务器的远程开发环境.在转换之前,我们有一个JAR在Java 1.7 x64和JRE 7上正常运行.当我们转移到新服务器时,我们的JAR运行正常,但随后其中一个服务器管理员将我们的Java"更新"到更旧版本版本并卸载了我们正在使用的版本.不要问我为什么,我不知道.我重新安装了Java 1.7并将其与JRE一起卸载了1.6.
运行时出现以下问题,没有构建错误:
Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion'
has value '1.7', but '1.6' is required.
Error: could not find java.dll
Error: could not find Java SE Runtime Environment.
Run Code Online (Sandbox Code Playgroud)
我在我的笔记本电脑上运行相同的JAR没有任何问题.服务器和我的笔记本电脑在相应的%HOME%变量和系统路径中都有JDK 1.7和JRE 7.我甚至重新安装了JRE 6并将其放在系统环境PATH变量中,结果相同.
我也改变了注册表回过头来再看1.6和它的结果在下面,我抬头一看,这似乎是从具有安装(导致回到我原来的问题)多个Java类:
Exception in thread "main" java.lang.UnsupportedClassVersionError: ... :
Unsupported major.minor version 51.0
Run Code Online (Sandbox Code Playgroud)
我很感激你们所拥有的任何见解,因为我一直在寻找各种论坛,但似乎没有任何问题.此外,这也发生在我们正在使用的另一台服务器上.谢谢!
更新:没有运气将JAR重新编译为1.6或1.7并匹配JDK.另外,为什么世界上新版本的Java会破坏旧的编译版本呢?
当我运行:C:\ Users\ashahria\Downloads> java -jar schemaSpy_5.0.0.jar
我收到以下错误.怎么了?我该如何解决?
错误:注册表项'Software\JavaSoft\Java Runtime Environment'\ CurrentVersion'
值为'1.5',但需要'1.7'.
错误:找不到java.dll
错误:找不到Java SE Runtime Environment.
好的,我在CentOS 6.3上使用Ant版本1.7.1(默认安装):
[theuser@dev-ingyhere ~]$ ant -version
Apache Ant version 1.7.1 compiled on August 24 2010
[theuser@dev-ingyhere ~]$ cat /etc/*-release
CentOS release 6.3 (Final)
Run Code Online (Sandbox Code Playgroud)
我已经JAVA_HOME设置并运行ant:
[theuser@dev-ingyhere ~]$ export JAVA_HOME=/usr/java/jdk1.7.0_17 ; echo $JAVA_HOME ;
/usr/java/jdk1.7.0_17
[theuser@dev-ingyhere ~]$ ant -diagnostics | grep java\\.home
java.home : /usr/java/jdk1.7.0_17/jre
Run Code Online (Sandbox Code Playgroud)
这更有趣:
[theuser@dev-ingyhere ~]$ export JAVA_HOME=/a/fools/folly ; echo $JAVA_HOME ; ant -diagnostics | grep java\\.home
/a/fools/folly
java.home : /usr/java/jdk1.7.0_17/jre
[theuser@dev-ingyhere ~]$ env | grep JAVA
JAVA_HOME=/a/fools/folly
Run Code Online (Sandbox Code Playgroud)
所以,我确实得到了一件事 - 显然Oracle的Java 7 Javadoc for Class …
我正在尝试使用此命令在Cygwin中设置我的JAVA_HOME:
export JAVA_HOME="/cygdrive/c/Program Files/Java/jdk1.7.0_10"
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时cd $JAVA_HOME,我会收到这个错误:
$ cd $JAVA_HOME
-bash: cd: /cygdrive/c/Program: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我尝试引用,并逃避空间(即,\),但没有一个工作.知道还有什么呢?
谢谢,