- 浏览: 3019462 次
- 性别:
- 来自: 海外
文章分类
- 全部博客 (430)
- Programming Languages (23)
- Compiler (20)
- Virtual Machine (57)
- Garbage Collection (4)
- HotSpot VM (26)
- Mono (2)
- SSCLI Rotor (1)
- Harmony (0)
- DLR (19)
- Ruby (28)
- C# (38)
- F# (3)
- Haskell (0)
- Scheme (1)
- Regular Expression (5)
- Python (4)
- ECMAScript (2)
- JavaScript (18)
- ActionScript (7)
- Squirrel (2)
- C (6)
- C++ (10)
- D (2)
- .NET (13)
- Java (86)
- Scala (1)
- Groovy (3)
- Optimization (6)
- Data Structure and Algorithm (3)
- Books (4)
- WPF (1)
- Game Engines (7)
- 吉里吉里 (12)
- UML (1)
- Reverse Engineering (11)
- NSIS (4)
- Utilities (3)
- Design Patterns (1)
- Visual Studio (9)
- Windows 7 (3)
- x86 Assembler (1)
- Android (2)
- School Assignment / Test (6)
- Anti-virus (1)
- REST (1)
- Profiling (1)
- misc (39)
- NetOA (12)
- rant (6)
- anime (5)
- Links (12)
- CLR (7)
- GC (1)
- OpenJDK (2)
- JVM (4)
- KVM (0)
- Rhino (1)
- LINQ (2)
- JScript (0)
- Nashorn (0)
- Dalvik (1)
- DTrace (0)
- LLVM (0)
- MSIL (0)
最新评论
-
mldxs:
虽然很多还是看不懂,写的很好!
虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩 -
HanyuKing:
Java的多维数组 -
funnyone:
Java 8的default method与method resolution -
ljs_nogard:
Xamarin workbook - .Net Core 中不 ...
LINQ的恶搞…… -
txm119161336:
allocatestlye1 顺序为 // Fields o ...
最近做的两次Java/JVM分享的概要
刚才有同事说在中文Windows上用maven-compiler-plugin出错了,因为用javac编译时输出的警告信息里有中文,而maven-compiler-plugin插件只能识别英文结果就错了。所以想找办法让javac输出英文信息。
我虽然没在用maven-compiler-plugin遇到这个问题,不过之前也一直想让javac输出英文信息。这次顺便把找方法的过程记下。
javac本身是用Java写的,选取字符串资源时会受到底下的JVM的语言状态影响。那么问题就转变为如何让JVM用英文环境来执行(同时还得继续使用GBK编码作为默认编码,不然有些文件的读取就不对了)。
其实问题不在系统是不是中文的,而在“国家”是不是中国。
通过设定Java的系统属性 user.country ,就可以任意指定JVM“认为”的当前所在国家;用于指定文件的默认编码的系统属性则是 file.encoding ,跟国家是分开的。
这里所说的“系统属性”是指在Java程序中通过 java.lang.System.getProperty() 能获取到的那些属性。
如果用java/java.exe来启动JVM,那么在命令行上使用 -Duser.country=US 就可以把国家指定为美国。用javac/javac.exe来启动javac编译器则需要再多加个-J在前面,也就是 -J-Duser.country=US 。
例子如下:
可以参考一下Mindprod上的一篇介绍
图片?是说JConsole的截图么?如果JAVA_HOME在您的PATH上那直接jconsole即可;如果没在的话那 %JAVA_HOME%\bin\jconsole (%JAVA_HOME%没设的话替换为您的JDK安装路径)
我虽然没在用maven-compiler-plugin遇到这个问题,不过之前也一直想让javac输出英文信息。这次顺便把找方法的过程记下。
javac本身是用Java写的,选取字符串资源时会受到底下的JVM的语言状态影响。那么问题就转变为如何让JVM用英文环境来执行(同时还得继续使用GBK编码作为默认编码,不然有些文件的读取就不对了)。
其实问题不在系统是不是中文的,而在“国家”是不是中国。
通过设定Java的系统属性 user.country ,就可以任意指定JVM“认为”的当前所在国家;用于指定文件的默认编码的系统属性则是 file.encoding ,跟国家是分开的。
这里所说的“系统属性”是指在Java程序中通过 java.lang.System.getProperty() 能获取到的那些属性。
如果用java/java.exe来启动JVM,那么在命令行上使用 -Duser.country=US 就可以把国家指定为美国。用javac/javac.exe来启动javac编译器则需要再多加个-J在前面,也就是 -J-Duser.country=US 。
例子如下:
Microsoft Windows XP [版本 5.1.2600] (C) 版权所有 1985-2001 Microsoft Corp. D:\>javac 用法:javac <选项> <源文件> 其中,可能的选项包括: -g 生成所有调试信息 -g:none 不生成任何调试信息 -g:{lines,vars,source} 只生成某些调试信息 -nowarn 不生成任何警告 -verbose 输出有关编译器正在执行的操作的消息 -deprecation 输出使用已过时的 API 的源位置 -classpath <路径> 指定查找用户类文件和注释处理程序的位置 -cp <路径> 指定查找用户类文件和注释处理程序的位置 -sourcepath <路径> 指定查找输入源文件的位置 -bootclasspath <路径> 覆盖引导类文件的位置 -extdirs <目录> 覆盖安装的扩展目录的位置 -endorseddirs <目录> 覆盖签名的标准路径的位置 -proc:{none,only} 控制是否执行注释处理和/或编译。 -processor <class1>[,<class2>,<class3>...]要运行的注释处理程序的名称;绕过默认 的搜索进程 -processorpath <路径> 指定查找注释处理程序的位置 -d <目录> 指定存放生成的类文件的位置 -s <目录> 指定存放生成的源文件的位置 -implicit:{none,class} 指定是否为隐式引用文件生成类文件 -encoding <编码> 指定源文件使用的字符编码 -source <版本> 提供与指定版本的源兼容性 -target <版本> 生成特定 VM 版本的类文件 -version 版本信息 -help 输出标准选项的提要 -Akey[=value] 传递给注释处理程序的选项 -X 输出非标准选项的提要 -J<标志> 直接将 <标志> 传递给运行时系统 D:\>javac -J-Duser.country=US Usage: javac <options> <source files> where possible options include: -g Generate all debugging info -g:none Generate no debugging info -g:{lines,vars,source} Generate only some debugging info -nowarn Generate no warnings -verbose Output messages about what the compiler is doing -deprecation Output source locations where deprecated APIs are u sed -classpath <path> Specify where to find user class files and annotati on processors -cp <path> Specify where to find user class files and annotati on processors -sourcepath <path> Specify where to find input source files -bootclasspath <path> Override location of bootstrap class files -extdirs <dirs> Override location of installed extensions -endorseddirs <dirs> Override location of endorsed standards path -proc:{none,only} Control whether annotation processing and/or compil ation is done. -processor <class1>[,<class2>,<class3>...]Names of the annotation processors t o run; bypasses default discovery process -processorpath <path> Specify where to find annotation processors -d <directory> Specify where to place generated class files -s <directory> Specify where to place generated source files -implicit:{none,class} Specify whether or not to generate class files for implicitly referenced files -encoding <encoding> Specify character encoding used by source files -source <release> Provide source compatibility with specified release -target <release> Generate class files for specific VM version -version Version information -help Print a synopsis of standard options -Akey[=value] Options to pass to annotation processors -X Print a synopsis of nonstandard options -J<flag> Pass <flag> directly to the runtime system
可以参考一下Mindprod上的一篇介绍
引用
The System properties are generated by a magic native method System.initProperties. There is no corresponding jar element or *.properties file on disk. file. You can temporarily add a System property with the -D option on the java.exe line. You can also use the technique to pass the value of a SET variable in as a system property.
评论
3 楼
RednaxelaFX
2012-12-12
logicmd 写道
Windows也没有Alias,还是我只是改一个编译的脚本,直接改即可。
另外楼主的图片窗口是怎么打开的啊?
另外楼主的图片窗口是怎么打开的啊?
图片?是说JConsole的截图么?如果JAVA_HOME在您的PATH上那直接jconsole即可;如果没在的话那 %JAVA_HOME%\bin\jconsole (%JAVA_HOME%没设的话替换为您的JDK安装路径)
2 楼
logicmd
2012-12-12
Windows也没有Alias,还是我只是改一个编译的脚本,直接改即可。
另外楼主的图片窗口是怎么打开的啊?
另外楼主的图片窗口是怎么打开的啊?
1 楼
umeit
2011-08-18
要是能在执行javac时自动加上这些参数就好了,不知道能不能实现?
发表评论
-
The Prehistory of Java, HotSpot and Train
2014-06-02 08:18 0http://cs.gmu.edu/cne/itcore/vi ... -
MSJVM and Sun 1.0.x/1.1.x
2014-05-20 18:50 0当年的survey paper: http://www.sym ... -
Sun JDK1.4.2_28有TieredCompilation
2014-05-12 08:48 0原来以前Sun的JDK 1.4.2 update 28就已经有 ... -
IBM JVM notes (2014 ver)
2014-05-11 07:16 0Sovereign JIT http://publib.bou ... -
class data sharing by Apple
2014-03-28 05:17 0class data sharing is implement ... -
Java 8与静态工具类
2014-03-19 08:43 16152以前要在Java里实现所谓“静态工具类”(static uti ... -
Java 8的default method与method resolution
2014-03-19 02:23 10346先看看下面这个代码例子, interface IFoo { ... -
HotSpot Server VM与Server Class Machine
2014-02-18 13:21 0HotSpot VM历来有Client VM与Server V ... -
Java 8的lambda表达式在OpenJDK8中的实现
2014-02-04 12:08 0三月份JDK8就要发布首发了,现在JDK8 release c ... -
GC stack map与deopt stack map的异同
2014-01-08 09:56 0两者之间不并存在包含关系。它们有交集,但也各自有特别的地方。 ... -
HotSpot Server Compiler与data-flow analysis
2014-01-07 17:41 0http://en.wikipedia.org/wiki/Da ... -
字符串的一般封装方式的内存布局 (1): 元数据与字符串内容,整体还是分离?
2013-11-07 17:44 22271(Disclaimer:未经许可请 ... -
字符串的一般封装方式的内存布局
2013-11-01 12:55 0(Disclaimer:未经许可请 ... -
关于string,内存布局,C++ std::string,CoW
2013-10-30 20:45 0(Disclaimer:未经许可请 ... -
对C语义的for循环的基本代码生成模式
2013-10-19 23:12 21767之前有同学在做龙书(第二版)题目,做到8.4的练习,跟我对答案 ... -
Java的instanceof是如何实现的
2013-09-22 16:57 0Java语言规范,Java SE 7版 http://docs ... -
oop、klass、handle的关系
2013-07-30 17:34 0oopDesc及其子类的实例 oop : oopDesc* ... -
Nashorn各种笔记
2013-07-15 17:03 0http://bits.netbeans.org/netbea ... -
《深入理解Java虚拟机(第二版)》书评
2013-07-08 19:19 0值得推荐的中文Java虚拟机入门书 感谢作者赠与的样书,以下 ... -
豆列:从表到里学习JVM实现
2013-06-13 14:13 48132刚写了个学习JVM用的豆列跟大家分享。 豆列地址:http: ...
相关推荐
javac 源码 javac 源码 javac 源码
java毕业设计——javaC语言试题生成与考试系统的设计与实现(源代码+论文).zip java毕业设计——javaC语言试题生成与考试系统的设计与实现(源代码+论文).zip java毕业设计——javaC语言试题生成与考试系统的设计与...
javaC语言试题生成与考试系统(源代码+论文)javaC语言试题生成与考试系统(源代码+论文)javaC语言试题生成与考试系统(源代码+论文)javaC语言试题生成与考试系统(源代码+论文)javaC语言试题生成与考试系统(源代码+论文)...
基于javaC语言试题生成与考试系统设计与实现.zip基于javaC语言试题生成与考试系统设计与实现.zip基于javaC语言试题生成与考试系统设计与实现.zip基于javaC语言试题生成与考试系统设计与实现.zip基于javaC语言试题...
javaC语言试题生成与考试系统(源代码+LW)javaC语言试题生成与考试系统(源代码+LW)javaC语言试题生成与考试系统(源代码+LW)javaC语言试题生成与考试系统(源代码+LW)javaC语言试题生成与考试系统(源代码+LW)javaC语言...
javaC语言试题生成与考试系统(源代码+论文).zip
javac 源代码 javac 源代码 javac 源代码 javac 源代码 javac 源代码
学生管理系统 学生管理系统 学生管理系统 学生管理系统 学生管理系统
jdk7 javac源码
关于javac命令的一些细节,import、package等关键字,classpath选项。不用IDE时怎么组织代码进行编译
javac源码免费下载,欢迎大家下载学习。
java javaC语言试题生成与考试系统 javaC语言试题生成与考试系统 javaC语言试题生成与考试系统
java编译的javac.jar
Javac源代码
javaC语言试题生成与考试系统 这两年太卷了,毕设和毕业 答辩竞争激烈,越写越卷,没有创新和亮点的毕业答辩基本达不到老师的要求。 现在学长为你们准备了JAVA毕业设计项目,需要的自取哦。javaC语言试题生成与考试...
javaweb毕业设计-javaC语言试题生成与考试系统(源代码+lw)(可做课程设计).rarjavaweb毕业设计-javaC语言试题生成与考试系统(源代码+lw)(可做课程设计).rarjavaweb毕业设计-javaC语言试题生成与考试系统(源代码+lw)...
OpenJDK javac1.7源码