-werrorjava的简单介绍
本篇文章给大家谈谈-werrorjava,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、我path设置都没有问题,javac运行没有问题,但是java无法运行,OSK 运行不了,calc也不行,省略其中部分
- 2、用shell脚本怎样编译java工程
- 3、用记事本写完java程序后怎么编译
我path设置都没有问题,javac运行没有问题,但是java无法运行,OSK 运行不了,calc也不行,省略其中部分
那是因为你把它本身的path删掉了,像help其实是执行windows/system32/下面文件夹。。。。的help.bat,你需要把它的环境变量加上,
解决方法:设置环境再加上
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;
我这个是win7 32位系统,如果你也是的话,可以copy我的到你的电脑path中
用shell脚本怎样编译java工程
用shell脚本怎样编译java工程
编译java工程一般直接用IDE或者用Ant、Maven之类的工具,很少有人用纯shell来编译java工程。正好遇到这样一个应该,用这篇博文做一下记录。
案例:用eclipse写了一个java project,然后编译打成jar包。
这个可以采用eclipse自带的Export就可以导出jar了。但是为了软件自动化等巴拉巴拉的原因,采用存shell脚本编译。
如图所示,java project的名称为iec104,下面src是源文件目录,bin是所引用的jar包目录,现在要进行编译,并且打成jar,如果对jar有所了解,都知道jar有个MANIFEST.MF文件,iec104工程的MF文件内容如下:
就是制定了运行的main-class(有public static void main(String args[])的类)。
将这个文件拷贝到iec104的根目录下,然后执行脚本compile.sh,内容如下:
#!/bin/bash
cur_dir=$(pwd)
echo $cur_dir
function do_compile_iec104(){
# echo $cur_dir
iec104=$cur_dir/iec104
iec104_src=$cur_dir/iec104/src
iec104_bin=$cur_dir/iec104/bin
# echo $iec104_src
# echo $iec104_bin
iec104_class=$cur_dir/iec104/class
# 将iec104的src目录下的所有java文件的名称存入到iec104/src/sources.list文件中
rm -rf $iec104_src/sources.list
find $iec104_src -name "*.java" $iec104_src/sources.list
cat $iec104_src/sources.list
# $iec104_class是存放编译的class文件的目录
rm -rf $iec104_class
mkdir $iec104_class
# 这里开始编译java文件,注意这里的-encoding utf-8,刚开始并没有加入这个,然后就报了一堆错误,纠结了很久才发现,这里给各位提个醒了。
javac -d $iec104_class -encoding utf-8 -classpath $iec104_bin/classes12.jar:$iec104_bin/junit-4.10.jar:$iec104_bin/log4j-1.2.17.jar:$iec104_bin/mysql-connector-java-5.0.5-bin.jar:$iec104_bin/RXTXcomm.jar -g -sourcepath $iec104_src @$iec104_src/sources.list
# 由于用到了log4j,所以要将log4j的配置文件一并放入,如果没有用到,可以忽略这句
cp $iec104_src/log4j.properties $iec104_class
# 如果原来在iec104目录下有jar报就删除掉,因为要生成新的
rm $iec104/iec104.jar
# 这里要cd到存放class的目录,否则如果采用绝对路径编译,编译出来的jar包里面就是绝对路径了,这样就会有问题
# jar -cvfm $iec104/iec104.jar $iec104/MANIFEST.MF $iec104_class/*这样是错误的
cd $iec104_class
jar -cvfm $iec104/iec104.jar $iec104/MANIFEST.MF *
# 赋予可执行权限
sudo chmod a+x $iec104/iec104.jar
}
do_compile_iec104
exit 0
运行这个脚本(linux下)就可以编译并且在iec104的目录下就可以看到iec104.jar文件了。
这里补充下java命令的基本知识:
javac 用于编译Java文件,格式为:
java [options] [sourcefiles] [@files]
其中:
options:命令行选项;
sourcefiles:一个或多个要编译的源文件;
@files:一个或多个对源文件进行列表的文件,有时候要编译的文件很多,一个个敲命令会显得很长,也不方便修改,可以把要编译的源文件列在文件中,在文件名前加@,这样就可以对多个文件进行编译,对编译一个工程很有用,方便,省事。
有几个比较重要的选项:
-d 用于指定编译成的class文件的存放位置,缺省情况下不指定class文件的存放目录,编译的class文件将和源文件在同一目录下;
-classpath 可以简写成-cp,用于搜索编译所需的class文件,指出编译所用到的class文件的位置,如jar、zip或者其他包含class文件的目录,指定该选项会覆盖CLASSPATH的设定;
-sourcepath用于搜索编译所需的源文件(即java文件),指定要搜索的源文件的位置,如jar、zip或其他包含java文件的目录;
需要注意windows下和linux下文件路径分隔符和文件列表(即-classpath和-sourcepath指定的文件)分隔符的区别:
windows下文件路径分隔符用 \ ,文件列表分隔符用分号 ;
linux下文件路径分隔符用 / ,文件列表分隔符用冒号 :
用记事本写完java程序后怎么编译
确认已经正确安装JDK。(cmd-输入javac,然后回车,出现一堆东西,下面的东西)
C:\Users\lenovojavac
用法: javac options source files
其中, 可能的选项包括:
-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 路径 指定查找注释处理程序的位置
-parameters 生成元数据以用于方法参数的反射
-d 目录 指定放置生成的类文件的位置
-s 目录 指定放置生成的源文件的位置
-h 目录 指定放置生成的本机标头文件的位置
-implicit:{none,class} 指定是否为隐式引用文件生成类文件
-encoding 编码 指定源文件使用的字符编码
-source 发行版 提供与指定发行版的源兼容性
-target 发行版 生成特定 VM 版本的类文件
-profile 配置文件 请确保使用的 API 在指定的配置文件中可用
-version 版本信息
-help 输出标准选项的提要
-A关键字[=值] 传递给注释处理程序的选项
-X 输出非标准选项的提要
-J标记 直接将 标记 传递给运行时系统
-Werror 出现警告时终止编译
@文件名 从文件读取选项和文件名
C:\Users\lenovo
然后输入 java helloWord 回车(前提,你的目录要在当前文件夹下。)
不报错就可以运行了
-werrorjava的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、-werrorjava的信息别忘了在本站进行查找喔。
发布于:2022-12-01,除非注明,否则均为
原创文章,转载请注明出处。