lincyang · 更新于 2018-11-28 11:00:43
Android L 之后推荐使用 JDK7编译程序,这是自然发展规律,就像是4年前编译 Android 1.6需要使用 JDK5一样。
多版本 JDK 是可以共存的,只需要使用 update-alternatives 工具就可以随时将它们切换。下面描述安装 openjdk 和 oracle jdk(对不住了 sun)以及切换版本的过程。
安装完成后找到其安装路径:
$ dpkg -L openjdk-7-jdk /. /usr /usr/lib /usr/lib/jvm /usr/lib/jvm/java-7-openjdk-amd64 $ ls /usr/lib/jvm/java-7-openjdk-amd64/ ASSEMBLY_EXCEPTION bin docs include jre lib man src.zip THIRD_PARTY_README </code></pre>使用 Android Studio 做开发,启动 IDE 就提示:
OpenJDK shows intermittent performance and UI issues. We recommend using the Oracle JRE/JDK.
看来还是要安装 Oracle 的 JDK 了,因为 ubuntu 软件源中没有此 JDK,所以不能像安装 openjdk 一样使用 apt-get 工具。
那么我们还是要去
验证是否切换成功:
$ java -version java version "1.7.0_71" Java(TM) SE Runtime Environment (build 1.7.0_71-b14) Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)同样的,当我们需要切换到低版本时选择2或者安装 oracle jdk6并将其纳入管理。这样就可以不用通过手动修改环境的方式来灵活切换 JDK 的版本了。
JIT Compiler(即时编译器)
为了提高效率,JIT Compiler在运行时与JVM交互,,并适当将字节码序列编译为本地机器代码。典型地,JIT Compiler执行一段代码(不是每次一条语句),优化这块代码,并将其翻译为优化的机器代码。 JIT Compiler是默认开启的,你可以禁用,这种情况下,将解释整个Java程序,所以不建议禁用JIT Compiler,当然除了诊断或者出现JIT编译问题.
classpath 加载类,JVM有三种类加载方式:Bootstrap,extension,application 当加载类文件时,JVM会找到某个任意类XYZ.class的依赖项。 第一个引导类载入器试图查找类,它会扫描lib文件夹下的rt.jar文件 如果没有找到类,则extension类加载器会在jre\lib\ext文件夹下查找该类 同样没有找到类,application类加载器会在系统CLASSPATH环境变量中查询所有的Jar文件和类. 如果类被任何加载器发现,则被类加载器载入,否则抛出异常:ClassNotFoundException
java -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库和jar包,需要全路径到jar包,多个jar包之间连接符:window上分号“;”.Linux下使用“:”。
配置maven 下载安装,配置环境变量 配置本地仓库地址
配置idea的maven选项
导入新项目 把项目中的.idea和.imi文件删除,然后重新reimport
maven打包
在pom中加入
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <useUniqueVersions>false</useUniqueVersions> <classpathPrefix>lib/</classpathPrefix> <mainClass>Extractor.App</mainClass> </manifest> </archive> </configuration> </plugin>然后点击 会在target文件夹中产生jar包。
idea 快捷键 alt+ENTER 补全返回值类型
