如何便捷地在两个 Java 版本之间进行切换

如何便捷地在两个 Java 版本之间进行切换,第1张

改变环境变量的设置就可以了,就是说把要用到的java版本的环境变量放到前面

JDK环境变量设置

我的电脑点右键,选择“属性”,选择“高级”标签,进入环境变量设置,分别设置如下三个环境变量:

设置JAVA_HOME:

一是为了方便引用,比如,JDK安装在C:\jdk1.6.0目录里,则设置JAVA_HOME为该目录路径, 那么以后要使用这个路径的时候, 只需输入%JAVA_HOME%即可, 避免每次引用都输入很长的路径串

二则是归一原则, 当JDK路径改变的时候, 仅需更改JAVA_HOME的变量值即可, 否则,就要更改任何用绝对路径引用JDK目录的文档, 要是万一没有改全, 某个程序找不到JDK, 后果是可想而知的----系统崩溃!

三则是第三方软件会引用约定好的JAVA_HOME变量, 不然, 你不能正常使用该软件.

在系统环境变量那一栏中点->新建JAVA_HOME (JAVA_HOME指向的是JDK的安装路径)

变量名: JAVA_HOME

变量值: C:\jdk1.6.0

(1)设置好path变量,使得我们能够在系统中的任何地方运行java应用程序,比如javac、java、javah等等,这就要找到我们安装JDK的目录,

假设我们的JDK安装在C:\jdk1.6.0目录下,那么在C: \jdk1.6.0\bin目录下就是我们常用的java应用程序,我们就需要把C:\jdk1.6.0\bin这个目录加到path环境变量里面。

在系统变量里找到path变量,选择->编辑;(里面已经有很多的变量值,是在变量值的最前面加上C:\jdk1.6.0\bin如果没有 就新建一个 但是 一般都会有的)

变量名: path

变量值: C:\jdk1.6.0\bin

或 %JAVA_HOME%\bin

(2)classpath环境变量,是当我们在开发java程序时需要引用别人写好的类时,要让java解释器知道到哪里去找这个类。通常,sun为我们提供了一些额外的丰富的类包,一个是dt.jar,一个是tools.jar,这两个jar包都位于C:\jdk1.6.0\lib目录下,所以通常我们都会把这两个jar包加到我们的classpath环境变量中set classpath=.C:\jdk1.6.0\lib\tools.jarC:\jdk1.6.0\lib\dt.jar。

在系统环境变量那一栏中点->新建classpath

变量名: classpath

变量值: .C:\jdk1.6.0\lib\tools.jarC:\jdk1.6.0\lib\dt.jar

或 .%JAVA_HOME%\lib\tools.jar%JAVA_HOME%\lib\dt.jar

(注意,CLASSPATH 中最前面是有个 “.”的,表示当前目录,这样当我们运行java AClass的时候,系统就会先在当前目录寻找AClass文件了。);

自己写的代码。能通过测试

题目中的要求用线程实现图片的切换

主要有两种方式可以实现。一种是Swing包下的Timer类。一种是Thread类

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778import java.awt.*import java.awt.event.*import javax.swing.*public class MousDemo extends JFrame {MyJPanel mpint index ImageIcon[] imgs = { new ImageIcon("C:\\Users\\lenovo\\Desktop\\a.png"),new ImageIcon("C:\\Users\\lenovo\\Desktop\\b.png") }public MousDemo() {mp = new MyJPanel(false)this.add(mp) this.setSize(300, 200) this.setDefaultCloseOperation(EXIT_ON_CLOSE) this.setTitle("鼠标窗口") this.setVisible(true)/** * 方式一,使用TImer来切换图片 * Swing下的Timer组件,个人觉得非常适合 * Timer(200,new ActionListener())意思就是每200毫秒执行一次ActionListener里面的方法 * */Timer timer = new Timer(200,new ActionListener() { @Overridepublic void actionPerformed(ActionEvent e) {mp.flag = !mp.flag mp.repaint() }}) timer.start()/** * 方法二: * 线程的方式 * */// new Thread(new Runnable() {// // @Override// public void run() {// while(true){// mp.flag = !mp.flag// mp.repaint()// try {// Thread.sleep(200)// } catch (InterruptedException e) {// e.printStackTrace()// }// }// // }// }).start()} public static void main(String[] args) {new MousDemo() } class MyJPanel extends JPanel{boolean flag public MyJPanel(boolean flag) {this.flag = flag }@Overridepublic void paint(Graphics g) {super.paint(g) if(flag == false){g.drawImage(imgs[0].getImage(), 0, 0,this) }else{g.drawImage(imgs[1].getImage(), 0, 0,this) }}}}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11294958.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存