`
backsnow
  • 浏览: 133495 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JAVA 命令行下 编译,解释执行时 参数大全 javac java

    博客分类:
  • java
阅读更多

<script type="text/javascript"> document.body.oncopy = function () { if (window.clipboardData) { setTimeout(function () { var text = clipboardData.getData(&quot;text&quot;); if (text &amp;&amp; text.length &gt; 300) { text = text + &quot;\r\n\n本文来自CSDN博客,转载请标明出处:&quot; + location.href; clipboardData.setData(&quot;text&quot;, text); } }, 100); } } </script><script type="text/javascript"> function StorePage() { d = document; t = d.selection ? (d.selection.type != 'None' ? d.selection.createRange().text : '') : (d.getSelection ? d.getSelection() : ''); void (keyit = window.open('http://www.365key.com/storeit.aspx?t=' + escape(d.title) + '&amp;u=' + escape(d.location.href) + '&amp;c=' + escape(t), 'keyit', 'scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes')); keyit.focus(); }</script>

javac

用法:javac <选项> <源文件>
其中,可能的选项包括:
  -g                                                       生成所有调试信息
  -g:none                                             不生成任何调试信息
  -g:{lines,vars,source}                    只生成某些调试信息
  -nowarn                                            不生成任何警告
  -verbose                                           输出有关编译器正在执行的操作的消息
  -deprecation                                    输出使用已过时的 API 的源位置
  -classpath <路径>                          指定查找用户类文件的位置
  -cp <路径>                                       指定查找用户类文件的位置
  -sourcepath <路径>                       指定查找输入源文件的位置
  -bootclasspath <路径>                  覆盖引导类文件的位置
  -extdirs <目录>                               覆盖安装的扩展目录的位置
  -endorseddirs <目录>                   覆盖签名的标准路径的位置
  -d <目录>                                        指定存放生成的类文件的位置 

        使用-d参数,如类中定义了包,则编译时会自动生成 包,  如:javac -d .  helloworld.java

表示在当前目录下编译Helloworld 类。.表示当前目录,如helloword中定义有包,则在当前目录下生成包:

    
  -encoding <编码>                          指定源文件使用的字符编码
  -source <版本>                              提供与指定版本的源兼容性
  -target <版本>                                 生成特定 VM 版本的类文件
  -version                                            版本信息
  -help                                                 输出标准选项的提要
  -X                                                      输出非标准选项的提要
  -J<标志>                                          直接将 <标志> 传递给运行时系统

java



用法: java [-选项] 类 [参数...]
           (执行一个类)
   或者 java [-选项] -jar jar文件 [参数...]
           (执行一个jar文件)
其 中,可能的选项包括:
    -client       选择 "client" VM(ginger547:应该是指Virtual Machine)
    -server     选择 "server" VM
    -hotspot      与 "client" VM同义  [不赞成]
                  默认情况的VM是client.
    -cp <一个文件夹和zip/jar文件组成的类搜索路径>
    -classpath <一个文件夹和zip/jar文件组成的类搜索路径>
                 一个由文件夹,JAR压缩文件,或者ZIP压缩文件组成的用来搜索类的列表
    -D<名字>=<值>
                  设置一个系统属性
    -verbose[:class|gc|jni]
                  使详细输出变的可用
    -version      打印产品版本然后退出
    -version:<值>
                  只运行指定版本
    -showversion  打印产品版本后继续
    -jre-restrict-search | -jre-no-restrict-search
                  在版本搜索的时候,包含/排除用户私人的JRE
    -? -help      打印帮助信息
    -X            打印非标准选项帮助
    -ea[:<包名>...|:<类名>]
    -enableassertions[:<包名>...|:<类名>]
                 使断言可用
    -da[:<包名>...|:<类名>]
    -disableassertions[:<包名>...|:<类名>]
                  是断言不可用
    -esa | -enablesystemassertions
                  使系统级断言可用
    -dsa | -disablesystemassertions
                  使系统级断言不可用
    -agentlib:<库名>[=<选项>]
                  加载本地代理库<库名>,例如. -agentlib:hprof
                  同时可查看, -agentlib:jdwp=help和 -agentlib:hprof=help
    -agentpath:<路径名>[=<选项>]
                  通过全路径名来加载本地代理库
    -javaagent:<jar路径>[=<选项>]
                 加载Java编程语言代理,可查看 java.lang.instrument

在命令行下编译一般写个批处理来进行编译,执行

分享到:
评论
2 楼 backsnow 2011-09-06  
java路径查看,whereis java,如果查看java_home,可以到/etc/profile中看到。
1 楼 backsnow 2011-03-29  
javac和java命令行中的-classpath选项
这是个很基础的问题,但是因为基本上都是用现有的IDE工具 来开发java程序,所以很少有人意识到这一点。
javac
-classpath,设定要搜索类的路径,可以是目录,jar文件,zip文件(里面都是class文件),会覆盖掉所有在CLASSPATH里面的设定。
-sourcepath, 设定要搜索编译所需java 文件的路径,可以是目录,jar文件,zip文件(里面都是java文件)。
所以一个完整的javac命令行应该是这样的,
假设abc.java在路径c:\src里面,在任何的目录的都可以执行以下命令来编译。
javac -classpath c:\classes;c:\jar\abc.jar;c:\zip\abc.zip -sourcepath c:\source\project1\src;c:\source\project2 \lib\src.jar;c:\source\project3\lib\src.zip c:\src\abc.java

表示编译需要c:\classed下面的class文件,c:\jar\abc.jar里面的class文件,c:\zip\abc.zip里面的 class文件
还需要c:\source\project1\src下面的源文件,c:\source\project2 \lib\src.jar里面的源文件,c:\source\project3\lib\src.zip里面的源文件,
注意:jar,zip里面的源文件不会有什么改动,目录下的源文件,有可能会被重新编译。
java
-classpath, 设定要搜索的类的路径,可以是目录,jar文件,zip文件(里面都是class文件),会覆盖掉所有的CLASSPATH的设定。
由于所要执行的类也是要搜索的类的一部分,所以一定要把这个类的路径也放到-classpath的设置里面。
表现在,在要执行的类的路径里面执行java时,一定要添加上点号(.)标示本目录也要搜索。

假设abc.class在路径c:\src里面
可以在任何路径下执行以下命令
java -classpath c:\classes;c:\jar\abc.jar;c:\zip\abc.zip;c:\src abc

问题:如果main.class属于c:\jar\abc.jar,并且在com.cnblogs.jeffchen这个包里,那么执行java -classpath c:\classes;c:\jar\abc.jar;c:\zip\abc.zip;com.cnblogs.jeffchen.main即可, 但是如果classpath中包含多个jar包呢?并且其他jar包中也有com.cnblogs.jeffchen会发生什么情况?错误?

在windows下,
文件路径的分割符为反斜杠  \ 
类或者java文件列表的分割符为分号 ;

在linux下
文件路径的分隔符位斜杠 /
类或者java文件列表的分隔符为冒号 :

一个linux下编译和运行的例子
/usr/local/java/bin/javac -classpath /tmp/javatest/lib/mail-1.3.3.jar -d /tmp/javatest/bin/ /tmp/javatest/src/jp/co/realseed/Capability.java

/usr/local/java/bin/java -classpath /tmp/javatest/lib/mail-1.3.3.jar:/tmp/javatest/bin/ jp.co.realseed.Capability

相关推荐

    java命令行编译说明

    ### Java命令行编译详解 在深入探讨Java命令行编译的具体细节之前,我们先简要回顾一下Java的编译过程。Java是一种广泛使用的高级编程语言,它支持跨平台运行,这得益于Java虚拟机(JVM)的存在。当开发者编写完...

    java命令行编译全

    在Java编程中,命令行编译是学习和工作中不可或缺的一部分,尤其是在没有集成开发环境(IDE)的情况下。本文将深入探讨如何在命令行环境下编译和运行包含包结构的Java程序。 首先,Java中的包(package)是用来组织...

    Java程序设计基础:使用命令行方式开发Java程序.pptx

    命令行状态下编写Java程序 注意: Java源代码文件的扩展名必须是.java,文件名必须与公共类名完全相同。 2. 编译Java程序 可执行文件javac.exe位于Java安装目录的bin子目录中,称为Java编译器 (Java Compiler——...

    Java 命令行工具

    Java命令行工具是Java开发中的基础部分,它们允许开发者在没有图形用户界面(GUI)的情况下执行各种任务。这篇博文可能探讨了如何利用Java的命令行工具进行程序的编译、运行和其他相关操作。在Java中,命令行工具...

    java命令参数大全(pdf版)

    Java命令参数大全是Java开发者日常工作中不可或缺的一部分,它包含了运行Java程序时所需要的各种选项和配置。这份PDF文档详细列举并解释了Java命令行接口(JVM)的各种参数,旨在帮助开发者更好地理解和使用Java...

    Android命令行手动编译打包详解

    ### Android命令行手动编译打包详解 #### 一、引言 随着移动互联网技术的快速发展,Android已经成为全球最大的移动操作系统之一。对于开发者来说,掌握如何使用命令行进行Android项目的编译与打包是非常重要的技能...

    java反编译软件反编译

    Java虚拟机(JVM)负责解释和执行这些字节码。 Java反编译的主要目的是在没有源代码的情况下,还原出接近原始的源代码,帮助开发者分析程序逻辑。然而,由于字节码不包含原始的变量名、注释和其他非必要信息,反...

    java源代码编译java源代码编译

    字节码不是直接执行的,而是由Java虚拟机(JVM)解释执行。JVM提供了类加载器、执行引擎、垃圾收集器等核心组件,确保了Java程序的高效运行。 4. **JVM的类加载机制** 类加载器负责查找并加载类文件,包括加载类...

    java 反编译 java 反编译

    Java虚拟机(JVM)负责解释执行这些字节码。反编译则是将字节码还原成人类可读的源代码形式。 1. **反编译工具**: - **JD-GUI**:一款图形化界面的Java反编译工具,可以直接打开并查看单个或多个类文件的源代码。...

    java编译和运行

    例如,如果有一个名为`Hello.java`的源文件,我们可以通过在命令行输入`javac Hello.java`来编译它,生成`Hello.class`文件。这个字节码文件可以在任何安装了相应JRE的系统上运行。运行编译后的Java程序,可以使用`...

    Java class反编译工具

    在运行时,JVM(Java虚拟机)会解释执行这些字节码,实现跨平台运行。 反编译的概念是对已编译的二进制代码进行逆向工程,恢复其原始的源代码形式。对于Java,这意味着将.class文件转换为.java文件。尽管这个过程...

    java程序的编译及运行共6页.pdf.zip

    命令行中执行`javac HelloWorld.java`会生成`HelloWorld.class`文件。如果程序包含多个类,`javac`可以一次编译整个目录结构。 3. **错误处理**:`javac`在编译过程中会检查语法和类型错误,如果发现错误,会显示...

    java反编译软件

    Java虚拟机(JVM)负责解释执行这些字节码。 然而,字节码本身并不包含源代码信息,因此,如果需要查看或理解字节码所对应的源代码,就需要用到反编译工具。常见的Java反编译软件有JD-GUI、FernFlower、Procyon等。...

    jad.exe(java反编译工具)

    字节码可以在任何支持Java的平台上运行,由Java虚拟机(JVM)解释执行。然而,字节码并不直接对应于源代码,因此无法直接阅读。反编译工具正是解决这一问题的手段,它尝试从字节码中重构出尽可能接近原始源代码的...

    Java JDK 配置;Java全编译

    - 对于编译阶段,可以通过`javac -classpath &lt;path&gt;`来指定编译时的classpath。 - 运行时,使用`java -classpath &lt;path&gt; &lt;classname&gt;`来指定运行时的classpath。 - **示例**:假设有一个名为`com.example`的包,...

    Java编译小助手

    4. **命令行工具**:对于那些习惯于使用命令行的开发者,Java编译小助手可能提供了一个图形界面,将常见的命令行操作如`javac`, `jar`等进行封装,方便快捷地进行编译和打包操作。 5. **多模块项目**:在处理包含多...

    Java初学者 JDK命令行 路径问题

    1. **临时设置**:在编译或运行时通过命令行参数设置: ``` javac -classpath C:\JavaTest Hello.java java -classpath C:\JavaTest Hello ``` 2. **永久设置**:通过操作系统的环境变量设置: - 打开“系统...

    Java | hello world文本编译代码

    要将Java源代码转换为可执行的机器代码,我们需要使用Java的编译器`javac`。在命令行中,导航到包含`HelloWorld.java`的目录,然后运行: ``` javac HelloWorld.java ``` 这个命令将生成一个名为`HelloWorld....

    让EditPlus支持javac,java命令.pdf

    按下“Ctrl+1”将执行javac编译,如果代码无误,将会在控制台看到成功编译的提示。接着,按下“Ctrl+2”将运行已编译的Java程序,控制台将显示程序的运行结果。 通过上述步骤,EditPlus已经成为了一个轻量级的Java...

    编译java语言所用的JDKjdk1.8

    - `java`:Java解释器,执行编译后的.class文件。 - `jar`:创建、管理和提取Java归档(JAR)文件。 - `javadoc`:生成API文档。 - `jconsole`:监视Java应用程序的性能和资源使用情况。 - `jvisualvm`:一个...

Global site tag (gtag.js) - Google Analytics