Java Debug小技巧记录
来源:互联网 发布:安卓开发 必须学java 编辑:程序博客网 时间:2024/05/18 20:07
1.在进行Debug的时候,大家通常会有想要将某个方法的调用栈打出来分析一下的需求,那么Java中如何打印调用栈呢?
方法一:
public void test() {
......
try {
throw new Exception("Debug");
} catch(Exception e) {
e.printStackTrace();
}
......
}
方法二:
public void test() {
......
new Exception("Debug").printStackTrace();
......
}
持续补充...
2.ubuntu linux java版本切换 [转至http://www.bkjia.com/Linuxjc/898736.html]
在Ubuntu中,如果安装有多个Java版本时(有时候有些软件自行安装),怎样方便的进行切换呢。除了常见的设置环境变量外,今天学到了一种新的切换方法:
update-alternatives --config java
update-alternatives --config javac
另外,将自己的java版本如何安装:
sudo update-alternatives --install /usr/bin/java java /opt/jdk1.7.0_67/bin/java 50
sudo update-alternatives --install /usr/bin/javac javac /opt/jdk1.7.0_67/bin/javac 50
sudo update-alternatives --install /usr/bin/javah javah /opt/jdk1.7.0_67/bin/javah 50
sudo update-alternatives --install /usr/bin/javaws javaws /opt/jdk1.7.0_67/bin/javaws 50
sudo update-alternatives --install /usr/bin/javap javap /opt/jdk1.7.0_67/bin/javap 50
----------------------------------------另一篇----------------------------------------
由于要在同一个Ubuntu环境下编译2.1和2.3两份代码,而他们所使用的java版本一个是1.5,一个是1.6,所以在编之前需要进行切换;
切换的方法很简单,使用下面的两个命令即可:
update-alternatives --config java
update-alternatives --config javac
例如:
root@www.bkjia.com:~# update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).
选择 路径 优先级 状态
------------------------------------------------------------
* 0 /usr/lib/jvm/java-6-sun/jre/bin/java 63 自动模式
1 /usr/lib/jvm/java-1.5.0-sun/jre/bin/java 53 手动模式
2 /usr/lib/jvm/java-6-sun/jre/bin/java 63 手动模式
要维持当前值[*]请按回车键,或者键入选择的编号:1
update-alternatives: 使用 /usr/lib/jvm/java-1.5.0-sun/jre/bin/java 来提供 /usr/bin/java (java),于 手动模式 中。
只要输入想要切换的编号回车即可,不改的话直接回车,别忘记javac也改一下~
改完之后,
java -version
javac -version
确认一下~
3.Java:Difference between Class.forName and ClassLoader.loadClass
[摘录stackoverflow的原话]
Class.forName() will always use the ClassLoader of the caller, whereas ClassLoader.loadClass() can specify a different ClassLoader.
I believe that Class.forName initializes the loaded class as well, whereas the ClassLoader.loadClass() approach doesn't do that right
away (it's not initialized until it's used for the first time).
参考http://stackoverflow.com/questions/8345220/java-difference-between-class-forname-and-classloader-loadclass
- Java Debug小技巧记录
- java进行debug的几个小技巧
- java学习过程中的小技巧记录
- [转]VS DEBUG 小技巧
- VC Debug 小技巧@ERR
- eclipse的debug小技巧
- SAP ABAP Debug 小技巧
- cocos2dx-小技巧记录
- xcode 小技巧记录
- Android 小技巧记录
- Qt 小技巧 记录
- 小技巧记录
- Linux小技巧记录
- 记录一些小技巧
- 记录一些小技巧
- IOS 记录小技巧
- 编程小技巧记录
- 小技巧记录
- Jvm工作原理学习笔记
- 脚本的参数化
- .Net反编译工具ILSpy的使用
- 【图像处理】根据双眼的坐标对齐人脸Python实现
- Linux的分区与文件系统的概念
- Java Debug小技巧记录
- Google Chrome 浏览器快捷键大全收集整理
- ns3中的openflow-switch例子
- Linux Shell 学习笔记(一)
- 解读木马病毒的六种启动方式
- cocos2dx的多分辨率适配(一)
- Java基础----SequenceInputStream
- c#读写文件的几种方式StreamReader、StreamWriter、FileStream
- 菜单