草庐IT

java - 升级到Java8后,javac仍然显示1.7

我在OSX上从JDK1.7->1.8升级时遇到问题。升级已完成,但javac仍返回1.7作为版本。我已经下载了JDK8_u5从Oracle的主页,然后运行安装程序。我还采取了以下步骤,安装后:>exportJAVA_HOME=`/usr/libexec/java_home-v1.8`(Executedinmy.bashrcfile)>echo$JAVA_HOME/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home>javac-versionjavac1.7.0_21>$JAVA_HOME/bin/javac-ve

java - 如何设置我的 Cygwin PATH 以查找 javac?

我有一个安装了最新Java编译器的Windows7系统。我也有最新的Cygwin。我想使用Cygwin的shell中的Java编译器。我在Cygwin中编辑了PATH变量如下:exportPATH=$PATH:"/cygdrive/C/Program\Files/Java/jdk1.6.0_23/bin/"我可以在上面的目录中看到javac二进制文件,但是当我尝试编译我的*.java文件时,我得到:javaccommandnotfound我在设置这样的PATH变量时做错了吗?我必须做其他事情吗?我是Java新手,对cygwin不是很熟悉。 最佳答案

java - 让 Ant <javac> 识别类路径

我有一个带有的ApacheAnt构建文件需要四个特定JAR在构建中的命令classpath.我试过这样做:Compilefrom${src}to${build}…但是TSA.classpath中没有指定文件似乎出现了。如何在我的类路径中包含这些文件? 最佳答案 这是我目前正在进行的一个项目的示例。我怀疑你可以修改它以适应你的情况。... 关于java-让Ant识别类路径,我们在StackOverflow上找到一个类似的问题: https://stackover

java - 什么是 JAVA_HOME? JVM如何找到存储在JAVA_HOME中的javac路径?

我想知道JAVA_HOME是什么。javac.exe和java.exe的路径在哪里设置。它在环境变量中吗?当我从命令提示符编译Java程序时,JVM是如何找到javac.exe的? 最佳答案 JVM没有找到java.exe。它甚至不叫它。java.exe由操作系统(在本例中为Windows)调用。JAVA_HOME只是一个约定,通常被Tomcat、其他JavaEE应用服务器和构建工具(如Gradle)用来查找Java所在的位置。从您的角度来看,重要的是Java/bin目录位于您的PATH上,因此Windows可以找到.exeJDK附

java - 抑制 javac 警告 "...is internal proprietary API and may be removed in a future release"

当我使用JDK1.7.0在OSX上编译SpringJDBC源代码时,我收到以下警告:warning:CachedRowSetImplisinternalproprietaryAPIandmayberemovedinafuturerelease如何在编译期间隐藏警告消息?我已经知道并使用Java的@SuppressWarning注释。我正在寻找它的具体用途来抑制我所描述的警告。我的问题是,在这行代码中:@SuppressWarnings("valuegoeshere")“valuegoeshere”应该换成什么?编辑:人们,我知道最好避免导致警告的代码。通常这就是我的方法。但是,我在这里

java - 通过 javac 使用内部 sun 类

有没有办法禁用javac1.6.0_22的限制,阻止我使用像sun.awt.event.*这样的JRE内部类?我不是在寻找:解释为什么它被禁止。建议使用不同的类建议使用反射建议使用ecj/eclipse我只是想知道它是否可能,如果它是那么如何。 最佳答案 我自己找到了答案。当javac编译代码时,默认情况下它不会链接到rt.jar。相反,它使用带有类stub的特殊符号文件lib/ct.sym。令人惊讶的是,这个文件包含许多但不是全部的内部sun类。在我的例子中,其中一个比平常更内部的类是sun.awt.event.IgnorePai

java - 是否可以禁用 javac 的静态最终变量内联?

Java静态编译器(javac)内联了一些静态最终变量,并将这些值直接带入常量池。考虑以下示例。A类定义了一些常量(publicstaticfinalvariables):publicclassA{publicstaticfinalintINT_VALUE=1000;publicstaticfinalStringSTRING_VALUE="foo";}B类使用这些常量:publicclassB{publicstaticvoidmain(String[]args){inti=A.INT_VALUE;System.out.println(i);Strings=A.STRING_VALUE;

android - compileReleaseKotlin 失败并出现 java.lang.ClassNotFoundException : com. sun.tools.javac.util.Context

我正在尝试使用gradlew通过终端构建我的Android项目(其中包含一个库模块)。在AndroidStudio中,它可以成功编译和安装,但是当我尝试运行./gradlewassembleDebug时,我得到以下堆栈跟踪:Usingkotlinincrementalcompilatione:java.lang.ClassNotFoundException:com.sun.tools.javac.util.Contextatjava.net.URLClassLoader.findClass(URLClassLoader.java:381)atjava.lang.ClassLoader.

java - Ant 找不到 javac,在 Ubuntu 上不会设置 JAVA_HOME

我的Ubuntu10.04i386服务器(headless)上有一个名为Hello的Android项目。它包含Android项目文件夹应具有的所有内容。我首先在bash中使用此语法在Project文件夹中构建项目:./androidcreateproject--target5--nameHelloCompile--path../../Projects/Hello--activityHelloActivity--packagecom.code.Hello然后我尝试像这样用ant构建.apk:antdebug我收到此错误:BUILDFAILED/home/myusername/www/sd

javac错误: Class names are only accepted if annotation processing is explicitly requested

我在编译我的java程序时遇到这个错误:error:Classnames,'EnumDevices',areonlyacceptedifannotationprocessingisexplicitlyrequested1error这是java代码(我在Ubuntu上运行它)。importjcuda.CUDA;importjcuda.driver.CUdevprop;importjcuda.driver.types.CUdevice;publicclassEnumDevices{publicstaticvoidmain(Stringargs[]){CUDAcuda=newCUDA(tru