Java 在保留类路径的同时转换为jar

Java 在保留类路径的同时转换为jar,java,jar,classpath,manifest,executable-jar,Java,Jar,Classpath,Manifest,Executable Jar,我有一个使用外部库的Java程序,它的位置是通过类路径指定的。我现在想把Java程序变成一个独立的jar文件,这样我就可以在程序运行时使用我的IDE做其他事情 如何将现有的.java文件转换为可执行的jar文件 我能够创建一个jar文件,其中包括类文件、清单文件和在类路径中指定的库的jar文件,但这似乎仍然是错误的,因为我得到了类未找到错误 Ant脚本为您准备。您错过的是将类路径生成为jar任务的字符串 <target name="all"> <property nam

我有一个使用外部库的Java程序,它的位置是通过类路径指定的。我现在想把Java程序变成一个独立的jar文件,这样我就可以在程序运行时使用我的IDE做其他事情

如何将现有的.java文件转换为可执行的jar文件


我能够创建一个jar文件,其中包括类文件、清单文件和在类路径中指定的库的jar文件,但这似乎仍然是错误的,因为我得到了类未找到错误

Ant脚本为您准备。您错过的是将类路径生成为jar任务的字符串

<target name="all">
    <property name="dir" value="yourProjectDir" />
    <property name="name" value="$yourProjectName" />

    <!-- clean -->
    <delete dir="temp/" />
    <mkdir dir="temp/bin/" />

    <!-- prepare libs -->
    <copy todir="temp/libs/"><fileset dir="${dir}/lbs/" /></copy>

    <!-- prepare classpath -->
    <pathconvert property="classpath" pathsep=" ">
        <path><fileset dir="temp/libs/" /></path>
        <chainedmapper><flattenmapper /><globmapper from="*" to="libs/*" /></chainedmapper>
    </pathconvert>

    <!-- compile -->
    <javac destdir="temp/bin/" srcdir="${dir}/src/" target="1.6" source="1.6" includeAntRuntime="false">
        <classpath>
            <pathelement location="temp/bin/" />
            <fileset dir="temp/libs/" />
        </classpath>
    </javac>

    <!-- jar -->
    <jar destfile="temp/${name}.jar" basedir="temp/bin/">
        <manifest>
            <attribute name="Main-Class" value="Main" />
            <attribute name="Class-Path" value="${classpath}" />
        </manifest>
    </jar>

    <!-- zip jar + libs -->
    <zip destfile="${name}-${version}.zip">
        <fileset dir="temp" includes="${name}.jar, libs/" />
    </zip>
</target>

以下是如何从命令提示符下运行单机版应用程序的步骤。 1.创建一个示例java文件,然后保存在特定位置,如d:\sample\Hello.java。 2.打开命令提示符编译该java类,然后创建类似于Hello.jar文件的jar 3.然后在环境文件中设置类路径,如D:\sample\Hello.jar;
4.现在运行您的java类,它将工作:sample>java Hello

Details,Details,Details换句话说,我们需要您提供它们来帮助可能的重复。java文件只是源代码。它无法执行。我可以创建一个jar文件,其中包括类文件、清单文件和库的jar文件。。不要那样做。库应该放在Jar1可以访问的位置,并按相对路径列在主Jar的清单中。1一个简单的地方是与主Jar相同的目录。“相对路径”就变成了“名称”。