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

linux 没有javac

基础概念

javac 是 Java 编程语言的编译器,用于将 Java 源代码文件(.java 文件)编译成字节码文件(.class 文件)。这些字节码文件可以在 Java 虚拟机(JVM)上运行。

相关优势

  • 跨平台性:Java 代码编译成字节码后,可以在任何安装了 JVM 的平台上运行。
  • 面向对象:Java 是一种面向对象的编程语言,提供了丰富的类库和强大的面向对象特性。
  • 安全性:Java 提供了许多安全机制,如沙箱模型,可以防止恶意代码的执行。

类型

  • 编译器javac
  • 解释器java
  • 工具类:如 javadoc(生成文档)、javap(反编译字节码)

应用场景

  • Web 开发:Java 在 Web 开发中广泛应用,如 Spring 框架。
  • 企业应用:许多大型企业系统使用 Java 开发,如银行系统、电信系统等。
  • 移动应用:Android 应用主要使用 Java 开发。

问题:Linux 没有 javac

原因

Linux 系统上没有 javac 可能是因为以下原因:

  1. Java 未安装:Linux 系统上没有安装 Java 开发工具包(JDK)。
  2. 环境变量未配置:即使安装了 JDK,环境变量(如 PATH)可能未正确配置,导致无法找到 javac

解决方法

  1. 安装 JDK
  2. 在大多数 Linux 发行版中,可以使用包管理器安装 JDK。例如,在 Ubuntu 上,可以使用以下命令:
  3. 在大多数 Linux 发行版中,可以使用包管理器安装 JDK。例如,在 Ubuntu 上,可以使用以下命令:
  4. 在 CentOS 上,可以使用以下命令:
  5. 在 CentOS 上,可以使用以下命令:
  6. 配置环境变量
  7. 安装 JDK 后,需要配置环境变量。可以编辑 ~/.bashrc~/.bash_profile 文件,添加以下内容:
  8. 安装 JDK 后,需要配置环境变量。可以编辑 ~/.bashrc~/.bash_profile 文件,添加以下内容:
  9. 然后运行以下命令使配置生效:
  10. 然后运行以下命令使配置生效:
  11. 验证安装
  12. 安装并配置完成后,可以运行以下命令验证 javac 是否可用:
  13. 安装并配置完成后,可以运行以下命令验证 javac 是否可用:
  14. 如果显示了 javac 的版本信息,说明安装和配置成功。

参考链接

通过以上步骤,你应该能够在 Linux 系统上成功安装和配置 javac

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

相关·内容

linux下 Error running javac compiler

由于Linux版本更新,虽然软件都拷贝过来了,但是系统环境重新配置。 旧系统配置了ANT一键部署功能的脚本,由于部署需要,所以这里又重新配置了下环境。.../lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin 然而你有没有发现...JAVA_HOME 下面根本没有所谓的lib文件,于是目录下自建lib目录,把本地的相关jar拷贝进去,然后 source /etc/proifle。...4、然后重新执行脚本,又报错了: Error running javac compiler 翻译一下可能就是无法找到javac编译器。 百度搜了一下,终于在老外的网站找到了问题。...由于openJDK默认值安装了jre,也就是java运行环境,并没有安装java开发环境,所以导致打包失败。

1.9K50

linux用yum安装jdk或yum组安装jdk只有java命令没有javac命令

打算写个helloworld试一试,写完后javac HelloWorld.java,报没有javac命令,首先echo $PATH一下,看下有没有jdk路径啥的,没问题,为啥没有所谓的dt.jar和tools.jar...检查了那么久,环境配置也设置个遍,一脸懵逼的看着没有dt.jar和tools.jar的文件夹,其实我也是想起来大牛说过,这种情况无非是被覆盖了,要分开装那两jar才有,好,那我再装一遍,yum groupinstall...openjdk-devel.x86_64 安装完了就去/usr/lib/jvm里看看,进去java-1.7.0-openjdk-devel.x86_64文件夹ll一下,发现有点不一样了,bin文件夹下ll一下,有java,还有javac...,cd到lib文件夹下ll,发现有dt.jar和tools.jar两个包,接下就是重新设置环境变量了,完了后能用java也能用javac了。...以上内容仅针对jdk 1.7安装时遇到的问题 以上只是本人没有找到最合适的解决办法,自己尝试了,亲测有用的做法,具体如果有什么问题也希望各位老司机、大牛指点迷津,小弟初学linux,望海涵 发布者:全栈程序员栈长

4.3K20
  • 模拟Javac命令

    在前一篇关于Javac编译器文章发布后,公众号后台有小伙伴留言问我javac命令是如何将java文件变成class文件的,我们能否实现一个这样的命令。...所以这篇文章的目的就是以Mac操作系统为例来模拟Javac命令。...首先javac命令在JDK的/bin目录下,其实质可以认为是一个脚本,在Mac系统中javac是一个可执行的 Unix文件,这里我们自己简单制作一个Unix可执行文件。...关于加 "./" 才能运行这里简单的说明下,我们执行一条Linux命令,本质是在运行一个程序,比如我们运行 javac 命令,那么机器首先会去alias中查找命令的含义,然后去内置命令中查找,最后去环境变量的...知道命令是如何执行之后,我们来实现一个自己的javac命令吧。

    1.1K30

    什么是Javac

    Javac 编译器的任务就是讲java语言规范转化成Java虚拟机语言规范,完成 “翻译工作” 什么是Javac Javac 是一种编译器,能将一种语言规范转化成另外一种语言规范。...那么回过头来,javac的编译器也是将Java这种对人非常友好的编程语言编译成对所有机器都非常友好的语言。注意,这种语言不是针对某个机器的,甚至包括不同种类,不同平台的机器。...如何系哦啊出不同种类,不同机器之间的差别,这个任务就由JVM来完成,而Javac的任务就是将Java源代码语言先转化成JVM能够识别的一种语言,然后由JVM将JVM语言再转化成当前这个机器能够识别的机器语言...如下图所示,javac的任务就是将java源码编译成Java字节码,也就是JVM能够识别的二进制码。

    1.3K30

    JAVAC原理「建议收藏」

    将命令行上指定的源文件进行读取,解析为语法树,然后将所有外部可见的定义都输入到编译器的符号表中 在编译的过程中会调用适当的注解处理器.如果在调用过程中,生成了新的资源文件或者类文件,则重新进行编译,直到没有新文件创建为止...因此,为了避免在没有执行注释处理的情况下不必要地解析和输入源文件,JavacProcessingEnvironment与概念模型执行“不同步”,同时仍然满足注解处理作为一个整体在实际编译之前发生的概念要求...Flow(数据流分析) 如果到目前为止还没有错误,则使用数据流分析对类进行分析。...数据流分析用于检查变量的确定分配和不可到达的语句,这可能导致额外的错误 TransTypes 使用TransTypes将泛型类型的代码转换为没有泛型类型的代码, Lower(强度削弱) “语法糖”是使用

    94810

    Java编译原理(javac)

    前端编译 前端编译大致主要有以下流程: 对源文件进行词法分析产生字符流 对字符流进行语法分析产生抽象语法树 对语法树进行语义分析,确保语义正常 语义分析通过以后生成中间代码(字节码) 下面我们站在javac...词法分析主要由com.sun.tools.javac.parser.Scannaer类来实现。...上述抽象语法树在Java中使用com.sun.tools.javac.tree.JCTree类来表示,之后所有的操作均建立在抽象语法树之上。...局部变量final类型的变量的不变性只能依靠编译来保证,这是因为局部变量在常量池中没有CONSTANT_Fieldref_info的符号引用,没有访问标志的信息,在运行期虚拟机并不确定局部变量是否是final...4.2.2 字节码生成 字节码生成是javac编译的最后一个阶段。字节码生成阶段不仅仅是把各个步骤生成的信息转换成字节码写到磁盘,还进行了代码的添加和转换工作。

    1.5K10

    Java和Javac 命令行

    JAVA和JAVAC 命令行 javac和java命令行中的-classpath选项 这是个很基础的问题,但是因为基本上都是用现有的IDE工具 来开发java程序,所以很少有人意识到这一点。...javac -classpath,设定要搜索类的路径,可以是目录,jar文件,zip文件(里面都是class文件),会覆盖掉所有在CLASSPATH里面的设定。...所以一个完整的javac命令行应该是这样的, 假设abc.java在路径c:\src里面,在任何的目录的都可以执行以下命令来编译。...javac -classpath c:\classes;c:\jar\abc.jar;c:\zip\abc.zip -sourcepath c:\source\project1\src;c:\source...在windows下, 文件路径的分割符为反斜杠  \   类或者java文件列表的分割符为分号 ; 在linux下 文件路径的分隔符位斜杠 / 类或者java文件列表的分隔符为冒号 : 一个linux

    48240

    linux为什么没有病毒

    linux不是没有病毒,而是病毒少。...病毒少的原因:1、Linux账号有限制,即使这个病毒成功地感染了这个用户拥有的一个程序,由于这个用户权限受限,它进一步传播的任务也会非常困难;2、Linux网络有限制,其网络程序构建地很保守,没有让病毒快速传播变的可能的高级宏工具...Linux教学 本教程操作环境:linux7.3系统、Dell G3电脑。 linux不是没有病毒,而是病毒少。 那么为什么Linux系统下病毒这么少?...Linux网络限制 Linux 网络程序构建地很保守,没有使现在 Windows 病毒如此快速传播变的可能的高级宏工具。...我们没有看到一个真正的 Linux 病毒疯狂传播,原因就在于存在的 Linux 病毒中没有一个能够在 Linux 提供的敌对的环境中茁壮成长 以上就是linux为什么没有病毒的详细内容,更多请关注编程笔记其它相关文章

    5K10

    Java底层-Javac编译器

    Javac编译是使用Java语言实现的,是不是很疑惑,用Java语言编写一个javac编译器去编译Java,那Javac的源码又是如何被编译执行的呢(好像鸡生蛋还是蛋生鸡的问题)?...编译器自举一般都是编译器开发的一个里程碑事件, 因为自举意味着被编译的语言荣升成自编译语言,而且编译器拥有自举能力对实现语言的语法语义本身没有限制(可参考编译原理一书)。...到这里我们知道javac编译器是如何而来的,那么我们程序中能不能使用javac编译器呢?答案是肯定的。...而Javac编译器具体的编译过程可以分为两大步骤(具体可看com.sun.tools.javac.main.JavaCompiler类源码):解析与填充符号表,语义分析及字节码生成。...编译器做一个简单叙述,感兴趣可以通过OpenJDK来下载源码,然后自己编译javac的源码, 也可以通过调用jdk的com.sun.tools.javac.main.Main类来手动编译指定的类

    2K30

    没有Linux服务器,该如何学习Linux呢?

    有了环境,接下来就是学习Linux,接下来的文章是从新手的角度出发,推荐一些Linux的学习网站。...2、Linux学习网站 Linux入门其实是很简单的,问题是你是否能有足够的耐心,花相应的时间和精力来折腾。...以下我大概整理的网站 2.1 菜鸟教程 地址:https://www.runoob.com/linux/linux-tutorial.html 这个网站无需多说,不仅是Linux,任何你想学的计算机课程都能在这里找到...image-20210731175046394 2.4 Linux中国 地址:https://linux.cn/ 这是一个关于Linux的资讯网站,网站提供了各种关于Linux的资讯你都可以在这里找到...image-20210731174805671 2.5 Linux公社 地址:https://www.linuxidc.com/ 这也是一个Linux资讯网站,里面同样可以找到很多关于Linux的相关文章

    4.6K00
    领券