1.建文本文档,输入自己的java程序。
㈡ 如何用java以及javac编译工程
一、javac命令
javac 用于编译Java文件,格式为:
java [options] [sourcefiles] [@files]
其中:
options:命令行选项;
sourcefiles:一个或多个要编译的源文件;
@files:一个或多个对源文件进行列表的文件,有时候要编译的文件很多,一个个敲命令会显得很长,也不方便修改,可以把要编译的源文件列在文件中,在文件名前加@,这样就可以对多个文件进行编译,对编译一个工程很有用,方便,省事。
有几个比较重要的选项:
-d 用于指定编译成的class文件的存放位置,缺省情况下不指定class文件的存放目录,编译的class文件将和源文件在同一目录下;
-classpath 可以简写成-cp,用于搜索编译所需的class文件,指出编译所用到的class文件的位置,如jar、zip或者其他包含class文件的目录,指定该选项会覆盖CLASSPATH的设定;多个路径可用分号“;”分隔,linux系统上用冒号“:”分隔,看具体情况,反正不是冒号“:”,就是分号“;”,报错了改下。
-sourcepath用于搜索编译所需的源文件(即java文件),指定要搜索的源文件的位置,如jar、zip或其他包含java文件的目录;
需要注意windows下和linux下文件路径分隔符和文件列表(即-classpath和-sourcepath指定的文件)分隔符的区别:
windows下文件路径分隔符用 \ ,文件列表分隔符用分号 ;
linux下文件路径分隔符用 / ,文件列表分隔符用冒号 :
二、java命令
java 用于执行程序,格式如下:
java [options] classfile
options:命令行选项,一般用于 -classpath 指定要执行的文件所在的位置以及需要用到的类路径,包括jar、zip和class文件目录,会覆盖CLASSPATH的设定
三、脚本
如果要敲的命令很长,每次要编译运行的时候都要重新敲一遍,这是一件很痛苦的事情,所以用脚本可以大大方便你的工作 量。在linux下用shell脚本,windows下用bat批处理程序。因为是在linux下,我这里只是简单介绍一下shell,关于bat批处理 程序的语法自己网络一下,不难。
1. 开头
linux有很多不同的shell,通常使用bash(bourne again shell),程序必须以下面的行开始:
#!/bin/sh
#!用来告诉系统用后面的参数来执行程序,这里使用的是/bin/sh
要使你的脚本能够执行,还必须让这个文件有可执行权限,使用下面命令更改文件权限:
chmod +x filename
2. 注释
以#开始的句子表示注释,一直到这行结束,多写注释有利于以后重新看的时候知道自己在做什么
3. 变量
shell的脚本的变量都是字符串,不用申明类型,定义的时候直接 变量=值 即可,用到变量的的时候用 $变量 或者 ${变量},echo命令用于打印,举个例子:
#!/bin/sh
# 定义变量words,值为hello world
words="hello world"
# 打印变量words的值
echo $words
4. 命令
shell脚本里面可以直接任意使用linux命令,要用到什么命令直接敲进去即可。记住一些常用的命令:
cd 打开目录
ls -l 显示目录信息
rm -fr 递归删除目录及下面的文件,不提示信息
mkdir 创建目录
pwd 显示当前路径
kill -9 pid 强制杀掉某个进程号的进程
pkill 杀掉某个名字的进程
ps aux 显示运行进程信息
netstat -pan 查看网络端口监听情况
㈢ 编译java程序需要使用什么命令
编译命令是 javac
首先使用记事本编辑一段简单的Java代码
㈣ Java 的命令行 编译和运行参数 如:-cp 怎么理解
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
㈤ 用Java可以写C语言编译器吗
用java是可以写语言编译器的,用任何语言工具写都可以。 各语言开发工具间只有开发效率的差异,没有可行不可行的区别。
编译器其实就是一个翻译工具,它可以把代码直接翻译成二进制文件交给CPU执行(二进制指令就是CPU的指令集,当然可以直接操作内存),当然,这个二进制文件需要符合操作系统的可执行文件的格式(PE格式或ELF格式)才能执行。
换个角度理解:
linux gcc实际上就是一个工具集合,包含编译器,汇编器,连接器等
编译器就是把c语言程序翻译为一种叫做目标文件的中间表示形式,然后交给汇编器,翻译为汇编程序,而汇编执行直接对应二进制机器码,链接之后就可以变成可执行文件了。
而用java实现的编译器完全可以代替gcc工具集合中的编译器,生成相同的目标文件的中间表示形式,在交给gcc汇编器,连接器等处理。
㈥ java在编译时出现 javac:找不到文件 是怎么回事
原因一:当前的编译路径并非是java类的存放路径;
原因二:java类中没有定义或者定义的main方法有错误;
建议您切换到java类存放路径,或确认java类中的代码编写有没有出错。
(6)java编译c扩展阅读:
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
参考资料:网络_java