我正在使用m2eclipse在Eclipse中编译一个项目.我在Eclipse中设置JDK路径,如下所示:
Windows-->preferences-->installed jres--> jdk1.7.xx path
Run Code Online (Sandbox Code Playgroud)
但这显示出错误
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.424s
[INFO] Finished at: Tue Oct 29 15:21:01 IST 2013
[INFO] Final Memory: 5M/15M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler- plugin:3.1:compile (default-compile) on project TEST-WEB: Compilation failure
[ERROR] No compiler is provided …Run Code Online (Sandbox Code Playgroud) java 7中的菱形运算符允许以下代码:
List<String> list = new LinkedList<>();
Run Code Online (Sandbox Code Playgroud)
但是在Java 5/6中,我可以简单地写:
List<String> list = new LinkedList();
Run Code Online (Sandbox Code Playgroud)
我对类型擦除的理解是这些完全相同.(无论如何,通用都会在运行时删除).
为什么要钻石头呢?它允许哪些新功能/类型安全?如果它没有产生任何新功能,为什么他们将其作为功能提及?我对这个概念的理解是否有缺陷?
我安装了从oracle网站下载的JDK 7u7.但安装后,终端仍然显示java版本6
$java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01-428, mixed mode)
Run Code Online (Sandbox Code Playgroud)
任何想法为什么java 7没有出现?
Ans:好的,问题已经解决了.答案是:我发现我的终端有一个.bash_profile,java home变量设置为1.6
export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home"
Run Code Online (Sandbox Code Playgroud)
因此,每次打开新的终端窗口时,这都会导致问题.只需删除此行即可解决问题.您仍然需要遵循@aleroot所说的内容,但如果这对您不起作用,请检查.bash_profile(或.bashrc)设置文件以查看您之前是否已导出任何Java版本.
是Java并发在实践中是否仍然有效?我想知道本书中描述的想法,概念和实现是否仍然符合最新的Java版本.
我问,因为最新版本是在2006年完成的.
如何在Java 7中java.nio.file.Path从String对象创建对象?
即
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
Run Code Online (Sandbox Code Playgroud)
?丢失的代码在哪里使用textPath.
如何以递归方式列出Java中目录下的所有文件?框架是否提供任何实用程序?
我看到很多hacky实现.但没有来自框架或nio
只是想知道是否有人尝试过使用Android的新Java 7语言功能?我知道Android会读取Java吐出的字节码并将其转换为dex.所以我想我的问题是它能理解Java 7的字节码吗?
尝试在Android Studio中编译项目时出现以下错误:
Gradle: error: diamond operator is not supported in -source 1.6
Run Code Online (Sandbox Code Playgroud)
在我找到的所有项目偏好中,我已将1.7设置为目标.项目SDK中1.7 SDK下显示的路径也是java 1.7安装的正确路径.
即使我在终端中运行java -version,它也告诉我我正在运行java 1.7.
我试图将JAVA_HOME env变量设置为:
/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)
错误不会消失.如何消除错误?
我最近遇到了java @SafeVarargs注释.谷歌搜索使Java中的可变函数不安全的原因让我感到困惑(堆中毒?擦除类型?),所以我想知道一些事情:
是什么让可变参数Java函数在@SafeVarargs意义上不安全(最好以深入的例子的形式解释)?
为什么这个注释留给程序员自行决定?这不是编译器应该能够检查的东西吗?
是否有必须坚持一些标准,以确保他的功能确实安全?如果没有,确保它的最佳做法是什么?
Java 8引入了重要的新语言功能,例如lambda表达式.
语言中的这些更改是否伴随着编译的字节码中的这些重大更改,这些更改会阻止它在不使用某些反向转换器的情况下在Java 7虚拟机上运行?