首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么javac"-source"标志不起作用?

这个问题是关于Java编译器的一个标志"-source"的问题。"-source"标志用于指定Java源代码的版本,以便编译器可以根据该版本进行编译。如果"-source"标志不起作用,可能是因为以下原因:

  1. 标志的语法错误:确保使用正确的语法,例如:javac -source 版本号 文件名.java。例如,如果要将Java源代码文件名.java编译为Java 1.8版本,则应使用命令:javac -source 1.8 文件名.java。
  2. 版本号不支持:确保指定的Java版本号是正确的,并且与您正在使用的Java编译器版本兼容。例如,如果您的编译器是Java 1.8,则不能使用"-source 10"来指定Java 10。
  3. 编译器版本问题:检查您的计算机上安装的Java编译器版本是否正确。您可以通过在命令行中输入"java -version"来查看当前安装的Java版本。如果需要,可以从官方网站下载并安装正确版本的Java编译器。
  4. 环境变量问题:确保JAVA_HOME环境变量已正确设置为您的Java安装目录。这将确保命令行可以找到正确的编译器。

如果以上方法都无法解决问题,请查阅Java编译器的官方文档以获取更多帮助。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么 strace 在 Docker 中不起作用

在编辑“容器如何工作”爱好者杂志的能力页面时,我想试着解释一下为什么 strace 在 Docker 容器中无法工作。...为什么 strace 不能工作,为什么--cap-add=SYS_PTRACE 可以解决这个问题? 假设 1:容器进程缺少 CAP_SYS_PTRACE 能力。...为什么?! 假设 2:关于用户命名空间的事情? 我的下一个(没有那么充分的依据的)假设是“嗯,也许这个过程是在不同的用户命名空间里,而 strace 不能工作,因为某种原因而行不通?”...这很容易解释为什么 strace 在 Docker 容器中不能工作 —— 如果 ptrace 系统调用完全被屏蔽了,那么你当然不能调用它,strace 就会失败。...为什么 --cap-add=SYS_PTRACE 能解决问题? 我们还没有解释的是:为什么 --cap-add=SYS_PTRACE 可以解决这个问题?

6.4K30
  • Duang~ Android堆栈慘遭毁容?精神哥揭露毁容真相!

    那么这里有两个问题: 为什么堆栈会是Unknown Source?是Bugly崩溃克星没有上报吗? 为什么com.xx.a.a会被还原成多个方法(图2示例中就被还原了5个方法)?...为什么堆栈会是Unknown Source? 是Bugly崩溃克星忘记上报了吗?不是!那是因为,你代码编译的姿势不对!...有经验的童鞋应该会发现,开发阶段上报Bugly的Crash崩溃堆栈都是有源码及行号的,但发布后就变成了Unknown Source为什么?...所以想让Crash崩溃堆栈不再Unknown Source,需要两个保证: 保证一:javac编译保留源文件名及行号 【TODO】javac编译保留源文件名及行号 源文件名、行号、变量名称,都存在class...命令行javac编译的解决方法 javac -g:{lines,source} XXX.java 使用Ant编译的解决方法 ? 使用Eclipse编译的解决方法 ?

    1.4K50

    javac 源码调试教程来了

    为什么写这这篇文章 一直有读者问我 javac 源码怎么调试,自己也在写 JVM 掘金小册的过程中阅读了大量的 javac 的源码,网上这方面的文章比较少,那就来写一篇 javac 源码调试的文章吧,作为.../arthur-zhang/javac-source-code-reading OpenJDK 的下载方式为:打开 https://hg.openjdk.java.net/jdk8/jdk8/langtools...在 Intellij 中新建一个 javac-source-code-reading 项目,把源码目录的 src/share/classes/com 目录整个拷贝到项目 src 目录下,删掉没用的 javadoc...打开 Project Structure 页面(File->Project Structure), 选中图中 Dependencies 选项卡,把 顺序调整到项目 JDK...javac 看字节码案例一:tableswitch 和 lookupswitch 选择的策略 读者提问,下面的代码编译出的 switch-case 语句为什么采用了 lookupswitch,而不是 tableswitch

    52410

    小朋友学Java(3):第一个Java程序

    执行完之后,可看到桌面生成了Hello.class文件 注意: (1)因为Program Files中间带了一个空格,所以上面javac所有的路径要用双引号包起来 (2)javac等价于javac.exe...为什么在桌面路径下,就可以直接使用javac和java命令呢? (1)首先,咱们看一下javac和java这两个可执行文件,被安装到哪了。 ?...:/usr/sbin:/sbin 这样看来,PATH路径并没有包含/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/bin,那为什么在桌面能辨认出...(3)执行whereis javac和whereis java $ where is javac /usr/bin/javac $ where is java /usr/bin/java 可以看出,javac...(3)用 :wq 退出vi编辑器并保存上面的内容 (4)用source .bash_profile命令激活上面修改后的PATH变量 $ source .bash_profile (5)用echo命令查看

    1.4K50

    Lombok 原理探析

    翻开源码,我们可以看到@Data这个接口 RetentionPolicy 是SOURCE级别的,也就是说,在代码编译的时候,相关的注解信息就已经丢掉了,并不会被加载进 JVM 里,那么为什么我们又会在...这就不得不说另一种注解解析方式了——编译时解析 @Target({ElementType.TYPE}) @Retention(RetentionPolicy.SOURCE) public @interface...在使用 javac 的过程中,它产生作用的具体流程如下所示 1.javac 对源代码进行分析,生成了一棵抽象语法树(AST) 2.运行过程中调用实现了「JSR 269 API」的 Lombok 程序...例如:JDK 的 javac 编译器。2.把字节码( *.class文件) 转变为 本地机器码 的过程称为 Java 虚拟机的即时编译运行期(JIT 编译器,Just In Time)。...他们之间的关系大约是 javac 把 *.java文件编译成*.class文件,*.class文件进入 JVM 后,通过 JIT 编译器将*.class文件解释为对应的机器码。

    29320
    领券