我将我的项目使用ant 打包成了monitorProject.jar(ant指定了主类), 我的项目用到了一些其他的jar 我用ant 打包时将所有的jar放到同一目录下,并将dll也放入进去,执行monitorProject.jar 中主类报:Exception in thread "main" java.lang.NullPointerException: cannot add null item
to Choice
at java.awt.Choice.insertNoInvalidate(Unknown Source)
at java.awt.Choice.addItem(Unknown Source)
at java.awt.Choice.add(Unknown Source)
at ipmsg.MainWindow.createWindow(Unknown Source)
at ipmsg.MainWindow.<init>(Unknown Source)
at ipmsg.Main.main(Unknown Source)
下面是我的ant:希望高手能帮助分析下原因,还有解释我有另外一个有main方法的主类调用了sign.jar,而这个是需要使用dll的,如果重新打包将主类修改成这个,运行时则报找不到sign.jar中的某个类。<?xml version="1.0"?><project name="monitorProject" default="pack" basedir="."> <!-- 定义目录变量 --> <property name="src.dir" value="${basedir}/src" /> <property name="java.lib.dir" value="${basedir}/src/lib" /> <property name="dist.dir" value="${basedir}/dist" />
<property name="classes.dir" value="${basedir}/classes"/> <path id="build.classpath"> <fileset dir="${java.lib.dir}"> <include name="*.*" /> </fileset> </path> <!-- 首任务(空)--> <target name="init"/> <!-- 编译 --> <target name="compile" depends="init"> <delete dir="${classes.dir}"/> <mkdir dir="${classes.dir}"/> <!--编译源程序--> <javac srcdir="${src.dir}" destdir="${classes.dir}">
<compilerarg line="-encoding UTF-8 "/>
<classpath refid="build.classpath" />
</javac>
</target> <!-- 打包 --> <target name="pack" depends="compile"> <!-- bin目录压缩成JAR包 --> <delete dir="${dist.dir}"/> <mkdir dir="${dist.dir}" /> <jar basedir="${classes.dir}" destfile="${dist.dir}/monitorProject.jar">
<manifest>
<attribute name="Built-By" value="${user.name}"/>
<!--<attribute name="Main-Class" value="com.ccidit.sentEvent.SendEvent"/>-->
<attribute name="Main-Class" value="ipmsg.Main"/>
</manifest> </jar>
<copy todir="${dist.dir}">
<fileset dir="${java.lib.dir}">
<include name="*.*"/>
</fileset>
</copy> </target>
</project>
to Choice
at java.awt.Choice.insertNoInvalidate(Unknown Source)
at java.awt.Choice.addItem(Unknown Source)
at java.awt.Choice.add(Unknown Source)
at ipmsg.MainWindow.createWindow(Unknown Source)
at ipmsg.MainWindow.<init>(Unknown Source)
at ipmsg.Main.main(Unknown Source)
下面是我的ant:希望高手能帮助分析下原因,还有解释我有另外一个有main方法的主类调用了sign.jar,而这个是需要使用dll的,如果重新打包将主类修改成这个,运行时则报找不到sign.jar中的某个类。<?xml version="1.0"?><project name="monitorProject" default="pack" basedir="."> <!-- 定义目录变量 --> <property name="src.dir" value="${basedir}/src" /> <property name="java.lib.dir" value="${basedir}/src/lib" /> <property name="dist.dir" value="${basedir}/dist" />
<property name="classes.dir" value="${basedir}/classes"/> <path id="build.classpath"> <fileset dir="${java.lib.dir}"> <include name="*.*" /> </fileset> </path> <!-- 首任务(空)--> <target name="init"/> <!-- 编译 --> <target name="compile" depends="init"> <delete dir="${classes.dir}"/> <mkdir dir="${classes.dir}"/> <!--编译源程序--> <javac srcdir="${src.dir}" destdir="${classes.dir}">
<compilerarg line="-encoding UTF-8 "/>
<classpath refid="build.classpath" />
</javac>
</target> <!-- 打包 --> <target name="pack" depends="compile"> <!-- bin目录压缩成JAR包 --> <delete dir="${dist.dir}"/> <mkdir dir="${dist.dir}" /> <jar basedir="${classes.dir}" destfile="${dist.dir}/monitorProject.jar">
<manifest>
<attribute name="Built-By" value="${user.name}"/>
<!--<attribute name="Main-Class" value="com.ccidit.sentEvent.SendEvent"/>-->
<attribute name="Main-Class" value="ipmsg.Main"/>
</manifest> </jar>
<copy todir="${dist.dir}">
<fileset dir="${java.lib.dir}">
<include name="*.*"/>
</fileset>
</copy> </target>
</project>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货