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

Javac命令使用ct.sym文件约束可使用的类

在JDK6,升级为JDK7或者JDK8的过程中会遇到一些奇怪的问题,简单的介绍一下经典的ClassNotFound:sun.nio.*、com.sun.image.codec.jpeg.*等。...Sun 的专用 API,可能会在未来版本中删除 private JPEGCodec jpegCodec; ^ 2 警告 jdk1.7/bin/javac TestCtSymJdk6Pass.java...原因 在JDK6以及以后的版本,JDK在目录下新增了一个链接文件${JDK_HOME}/lib/ct.sym文件。...*包,以及新的jdk.*都不是Open的API,是JDK内部的私有类,这些类的接口可能在之后的版本变动,也不保证平台移植性。 事实上,JDK提供的Public API,仅有三个包:java....ct.sym中的类文件都是简单的空函数,不包含函数体,所以非常小。 ? ct.sym中如果没有该类,则会出现ClassNotFound的错误。

2K41
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    在docker上编译openjdk8

    以前曾经试过在VMware上安装linux,但是每次都不顺利,例如linux环境,预装依赖软件,openjdk源码的选择等环境都会遇到问题,一旦失败再重新开始挺费时间的,现在用docker就省事多了,镜像和容器的创建和删除都比较简单干净...读者们从git上clone下来之后直接执行Docker build就能在本地构建镜像; 2. daocloud.io网站上支持通过执行github目录的方式在线构建镜像,后面我们会实践在daocloud.io...上构建镜像并部署到腾讯云或者阿里云服务器上; 上传到github时,除了Dockerfile,还要上传的文件有两个:jdk1.7和openjdk8源码,都超过了100M,如下图: ?...第二种方法比较简单易用,就是在mac或者linux上先用split命令将文件分割成多个,再上传到github上,在Dockerfile中有对应的命令将分割后的文件恢复成分割前的原文件,具体的分割命令如下...#本地安装jdk1.7 RUN yum -y localinstall $WORK_PATH/$JDK_RPM_FILE #把分割过的openJdk8的源码压缩包复制到工作目录 COPY .

    1.8K90

    自动化构建工具Maven

    ,并且参与打包;而test范围对主程序无效,对测试程序有效,不参与打包;provided范围对主程序和测试程序都有效,但不参与打包。...构建环节: [1]清理:将以前编译得到的旧的class字节码文件删除,为下一次编译做准备 [2]编译:将Java源程序编译成class字节码文件 [3]测试:自动测试,自动调用JUnit程序 [4]报告...该Java工程默认会有一个JDK版本,如果想直接修改默认JDK版本,可以来到Maven安装目录下的conf目录,打开settings.xml文件,找到profiles标签,然后在里面添加: jdk-1.7 true jdk>1.7jdk> </...常用命令: [1]mvn clean:清理 [2]mvn compile:编译主程序 [3]mvn test-compile:编译测试程序 [4]mvn test:执行测试 [5]mvn package

    81030

    ubuntu编译安卓源码_安卓源码编译环境

    环境变量设置 1.设置jdk环境变量 编译android源码只支持jdk 1.6,所以如果需要编译源码必须下载jdk 1.6,不能下载最新的jdk 1.7,如果不需要编译源码则可以下载1.7版本的。.../home/abc/jdk1.6.0_45/jre jre 或者 解决办法是在终端进入你的eclipse目录,然后输入: mkdir jre cd jre ln -s 你的JDK目录/bin bin...解决方案:由于是64bit的系统,而Androidsdk只有32bit的程序,需要安装ia32-libs,才能使用。...1.7 冲突 原因:在ubuntu软件中心安装eclipse导致jdk变成了默认的openjdk ~$ java -version java version “1.7.0_21” OpenJDK...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    15.5K10

    JVM

    文章目录 Java脑图 谈谈对Java的理解 平台无关性 特点 类测试complie 编译运行 反编译 不同系统解析class文件成为不同机器码 为什么不直接编译成机器码 JVM如何加载.class文件...mkdir -p 目录 复制文件 cp 文件 指定目录 为什么不直接编译成机器码 准备工作:无需重复校验语法 可扩展:字节码可由不同语言生成 JVM如何加载.class文件 Native...方法区是JVM的一种规范 jdk1.7之后位于方法区的字符串常量池,已被移动到了Java堆中 jdk1.8中元空间替代了永久代 解决了运行空间不足可能产生的异常 堆(Heap) 线程共享的堆...存储对象实例 可以处在物理上不连续的空间,逻辑连续即可,可扩展的 JVM存储角度 三大性能调优参数-Xms -Xmx -Xss含义 调整JVM,堆、线程,所占内存的大小 Java内存模型中堆和栈的区别...jdk6永久代内存异常 切换到1.7、1.8 对比不同jdk的intern() 1.7 1.6

    53121

    程序员进阶系列:多图教你掌握JVM

    1 JVM 初识 在讲解 JVM 之前,先来揭秘一下 Java 程序是如何实现一次编译到处运行的? ?...解一:Java 一次编译,到处运行,跨平台的特性是通过 JVM 来实现的,通过 JVM 来屏蔽底层操作系统的差异; 解二:Java 通过 JVM 来实现跨平台,但是 JVM 是不跨平台的,也就是说不同操作系统之上的...(JDK 1.7 内存模型) 如上图所示,JVM 运行时数据区主要分为程序计数器、虚拟机栈、本地方法栈、方法区、堆。 ?...(JDK 1.8 内存模型) 如上图所示,值得注意的是 JDK 1.8 相比 JDK 1.7,JVM 运行时数据区划分中的方法区(持久代)从 JVM 运行时数据区拿掉了,而在本地内存加入了元数据区(Metadata...避免了在 Java 堆和 Native 堆中来回复制数据,能在一些场景中显著提高性能。

    43630

    Kudu1.7的新功能

    此密码列表与服务器到服务器通信首选的密码列表相匹配,并确保最有效和最安全的密码也是首选的。 当Kudu客户端在Java 8或更高版本上运行时,可以显著提高读写性能。...如果客户端使用的功能在目标服务器上没有,则会返回报错。 2.滚动升级到Kudu1.7尚未得到充分的测试。我们不推荐对Kudu使用滚动升级。你可以关闭集群中的所有节点,然后升级Kudu,然后再重启。...针对Kudu1.6编写的应用程序可以在Kudu1.7客户端库进行编译和运行,反之亦然。 2.Kudu1.7 C++客户端与Kudu1.6的API和ABI向前兼容。...针对Kudu1.6客户端库编写和编译的应用程序无需修改Kudu1.7客户端库即可运行。针对Kudu1.7客户端库编写和编译的应用程序无需修改Kudu1.6客户端库即可运行。...5.Kudu1.7/CDH5.15不兼容性改动 1.新引入的副本管理方案与旧方案不兼容,因此无法将Kudu1.7之前的的Master Server与Kudu1.7的Tablet Server一起运行,

    1.3K20

    Java 内存区域详解

    从 JDK 1.7 开始已经默认开启逃逸分析,如果某些方法中的对象引用没有被返回或者未被外面使用(也就是未逃逸出去),那么对象可以直接在栈上分配内存。...分配方式有 “指针碰撞” 和 “空闲列表” 两种,选择哪种分配方式由 Java 堆是否规整决定,而 Java 堆是否规整又由所采用的垃圾收集器是否带有压缩整理功能决定。...3.3 对象的访问定位 建立对象就是为了使用对象,我们的 Java 程序通过栈上的 reference 数据来操作堆上的具体对象。...JDK1.7 的时候,字符串常量池被从方法区拿到了堆中。 并且,字符串常量拼接得到的字符串常量在编译阶段就已经被存放字符串常量池,这个得益于编译器的优化。...不包含 1.7)的处理方式是在常量池中创建与此 String 内容相同的字符串,并返回常量池中创建的字符串的引用,JDK1.7 以及之后,字符串常量池被从方法区拿到了堆中,jvm 不会在常量池中创建该对象

    49020

    从零开始用好 Maven : 从 Hello World 到日常使用

    在 Jakarta Turbine 项目中有几个不同的项目,虽然它们的Ant构建文件差异很小,但是 jar 包都在 CVS 上。...于是想要找到一个标准而又简单的项目构建方法,既可以清晰地定义出这个项目由什么构成并发布项目信息,又能在不同项目间共享Jar包。...Maven使用 2.1 安装 必备条件: 已安装JDK 注意事项: Maven 3.3 及更高版本要求 JDK1.7 或者更高版本 2.2 Windows 下载解压缩 打开下载页面:http://maven.apache.org...常见问题与办法 4.1 如何设置编译支持的 JDK 版本? 全局指定 下面的脚本指定编译版本兼容 JDK 1.7 ...... 指定插件 在不改变全局兼容性的情况下,可以在插件中指定。例如,下面的脚本指定了 maven-compiler-plugin 编译的版本兼容 JDK 1.7。

    90250

    Java编程技术教程之Java开发入门

    他们迫切希望能在WEB中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。...主要特性如下: 1.Java语言是简单的 Java语言是简单的,在Java的设计上尽可能让它与C++相近,以确保系统更容易被理解,但Java删除许多极少被使用、不容易理解和令人混淆的C++功能,如运算符重载...公共JRE:Java程序的运行环境。由于开发工具中已经包含一个专用的JRE,因此不需要再安装公共的JRE,此项可以不选。...完成安装 1.2.3 配置JDK 在安装完JDK之后,需要对环境变量进行配置,具体步骤如下。 (1)右键单击【我的电脑】,选择【属性】选项,进入到系统窗口,如图1.7所示。...1.4 Java运行机制 简单来说Java程序的运行机制分为编写、编译和运行三个步骤。 1.编写 编写是指在Java开发环境中进行程序代码的编辑,最终生成后缀名为“.java”的Java源文件。

    18310

    JavaSE 语法基础--- 泛型(基础知识问答)

    文章目录 如果没有泛型? 什么是泛型,介绍一下泛型? 各个版本泛型的使用及变化说一下? 泛型的意义? 泛型的好处? 1. Java中的泛型是什么 ? 使用泛型的好处是什么? 2....1.5 引入了泛型来允许强类型在编译时进行类型检查; JDK 1.7 泛型实例化类型具备了自动推断能力,譬如 List list = new ArrayList(); 可以写成 List list =...Java中的泛型是什么 ? 使用泛型的好处是什么? Java中的泛型是 JDK5中引入的一个新特性,泛型提供了编译时类型检查的机制,如果数据类型不是指定的类型的话编译时就会报错。...同一个泛型类,根据不同的数据类型创建对象,本质上都是同一类型,类型在编译时会被擦除。...类名的类型> 对象名 = new 类名的类型>() jdk1.7之后,后面 能够自动推断,所以可以省略不写 泛型接口 泛型接口的定义语法 interface 接口名<泛型标识,泛型标识

    39920

    JAVA语言的特征及核心

    更重要的是,Java编译程序不处理存储安排决策,所以程序员不能通过查看声明去猜测类的实际存储安排。编译的Java代码中存储引用在运行时由Java解释程序决定实际存储地址。...Java运行系统使用字节码验证过程保证装载到网络上的代码不违背任何Java语言限制。这个安全机制部分包括类如何从网上装载。...1.7、高性能 Java是一种先编译后解释的语言,所以他不如全编译性语言快。...但是有些情况下性能是很要紧的,为了支持这些情况,Java设计者制作了“及时”编译程序,它能在运行时吧Java字节码翻译成特定CPU(中央处理器)的机器代码,也就是实现全编译了。...2.2、JDK JDK为Java的开发环境,是开发时依赖的。包含JRE。 没有JDK的话,无法编译Java程序,如果想只运行Java程序,要确保已安装相应的JRE。 图片

    54920

    Maven

    4、如果没有.m2目录 ,自己手动执行mvn命令: mvn help:system 三、Maven仓库 Maven仓库是基于简单文件系统存储的,集中化管理Java API资源(构件)的一个服务。...用来做jar包的版本控制。 【2】JAR工程 将会打包成jar,用作jar包使用。即常见的本地工程 ---> Java Project。 【3】WAR工程 将会打包成war,发布在服务器上的工程。...八、在IDEA中创建Maven工程 【1】过程: 标准目录结构: 九、Maven项目结构 标准目录结构: ❀src/main/java 这个目录下储存java源代码 ❀src/main/...-- 定义的编译器插件ID,全局唯一,名字随便起 --> jdk-1.7 的编译器插件,资源拷贝插件,不是可运行的插件,maven直接帮我们运行了,但是tomcat属于可运行 插件,它什么时候工作需要程序员来控制,怎么控制呢?

    2.9K40

    16.2 安装jdk

    安装jdk目录概要 jdk版本1.6,1.7,1.8 官网下载地址 下载jdk8,放到/usr/local/src/目录下 tar zxvf jdk-8u144-linux-x64.tar.gz mv.../etc/profile java -version 安装jdk 安装tomcat和jdk,首先需要安装jdk,因为tomcat要想启动,依赖于jdk的环境变量 jdk版本目前有1.6、1.7...、1.8,简称为6、7、8 这里使用的是JDK的1.8版本,官网地址 用浏览器打开jdk的官网,然后将手动将jdk下载到windows上,打开官网后,首先点同意 Accept License...,但是是基于64位的版本的基础上编译出来的,所以最终还是一个64位的),所以再用centos7的系统,那下载的jdk版本肯定是 x86 的 ?...,因为系统的某个程序有可能在使用这个openjdk) [root@hf-01 src]# rpm -qa |grep openjdk [root@hf-01 src]# [root@hf-01 src

    1K50

    linux学习第五十四篇:Tomcat介绍,安装jdk,安装Tomcat

    java程序写的网站用tomcat+jdk来运行,tomcat是一个中间件,真正起作用的,解析java脚本的是jdk,jdk(java development kit)是整个java的核心,它包含了java...最主流的jdk为sun公司发布的jdk,除此之外,其实IBM公司也有发布JDK,CentOS上也可以用yum安装openjdk。...安装jdk jdk版本1.6,1.7,1.8 这个地址不能在linux下面wget,只能通过浏览器下载,先点接受,因为我们Centos7是64位的,所以下载64位的jdk压缩包 ?...下载jdk8,放到/usr/local/src/目录下,我们可以通过上一篇学的xftp来从Windows上传到我们的linux虚拟机上,xshell快捷键ctrl+alt+f ?...zxvf apache-tomcat-8.5.24.tar.gz 移动位置并改名: mv apache-tomcat-8.5.24 /usr/local/tomcat 启动Tomcat,因为我们下载的是二进制软件包所以不用编译安装

    89580
    领券