当前位置: 首页 > 知识库问答 >
问题:

Ant编译但不运行或创建jar

袁飞鹏
2023-03-14

下面的Ant构建编译成功。

它也不在指定的类路径中创建jar文件。

build.xml

<?xml version="1.0" encoding="UTF-8"?>

<project default="run" name="My Project">
<target name="run" depends="compile">
    <java classname="com.company.program.project">
        <classpath path="staging\" location="C:\my_work\Eclipse\3.6-64\plugins\"/>
    </java>
</target>

<target name="compile">
<javac includeantruntime="false" srcdir="./src" destdir="staging">
    <classpath>
        <fileset dir="C:\my_work\Eclipse\3.6-64\plugins">
            <!-- <include name="**/*.jar" /> -->
            <include name="org.eclipse.swt.*.jar" />
        </fileset>
    </classpath>
</javac>
</target>

<jar destfile="./build/jars/swtgui.jar" filesetmanifest="mergewithoutmain">
     <manifest>
      <attribute name="Main-Class" value="org.swtgui.MainGui" />
      <attribute name="Class-Path" value="." />
    </manifest>

    <fileset dir="./bin/com/company/program/project" includes="**/*.class" />
    <fileset dir="C:\my_work\Eclipse\3.6-64\plugins\" includes="org.eclipse.swt.win32.win32.x86_64_3.6.0.v3650b.jar" />

</jar>

<record name="./project.log" loglevel="verbose" action="start"/>

编辑:让它运行。没有编辑Build.xml,而是转到项目资源管理器->Build.xml->外部工具配置->build->targets,由于某种原因,未选中运行目标。

我检查了它,现在run目标运行,但会产生下面的错误日志

run:
 [java] running com.company.project.program with default permissions     (exit forbidden)
     [java] Running in same VM Executing 'com.company.project.program'
The ' characters around the executable and arguments are
not part of the command.
     [java] Could not find com.company.project.program. Make sure you have it in your classpath
    at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:140)
    at org.apache.tools.ant.taskdefs.Java.run(Java.java:834)
    at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:228)
    at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:137)
    at org.apache.tools.ant.taskdefs.Java.execute(Java.java:110)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at     sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
at         org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:435)
    at org.apache.tools.ant.Target.performTasks(Target.java:456)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1405)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1376)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at     org.eclipse.ant.internal.launching.remote.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:36)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1260)
    at org.eclipse.ant.internal.launching.remote.InternalAntRunner.run(InternalAntRunner.java:460)
    at org.eclipse.ant.internal.launching.remote.InternalAntRunner.main(InternalAntRunner.java:142)
         [java] Java Result: -1
    run:  duration 0 seconds
    BUILD SUCCESSFUL

    BUILD SUCCESSFUL

我是否需要对xml文件进行编辑才能运行它并创建一个JAR?

共有1个答案

尉迟安民
2023-03-14

你的罐子步不在“目标”内。创建一个名为“jar”的目标,它依赖于“compile”,它创建一个jar(您的“jar”块应该在这里工作),并让目标“run”依赖于它。

看起来您还需要将创建的jar添加到您的“run”“java”类路径中。

 类似资料:
  • 问题内容: 我们刚刚开始在我们的项目上使用Gradle和TestNG,所以我正在检查是否有任何测试失败实际上会使构建失败。我很惊讶地发现事实并非如此。正确地拾取并编译了测试,因此我看到了类文件。我也得到了运行的报告,但是显示0个测试(预期2个)。跑步给我以下内容: SuperSimpleTest.java: build.gradle包含: 我已经看过有关此主题的其他问题,并且找到了用作解决方法的提

  • 我们刚刚开始在我们的项目中使用Gradle和TestNG,所以我正在检查失败的任何测试是否真的失败了构建。我很惊讶地看到它没有。测试被正确地拾取和编译,所以我看到了类文件。我也收到了运行报告,但它说0个测试(预计为2个)。运行给我以下信息: SuperSimpleTest.java: 生成.gradle 包含: 我已经看了一下有关此主题的其他问题,在那里我发现了使用作为解决方法的提示(请参阅 ht

  • 但是当我试图在Netbeans中清理和构建它时,它被这条线噎住了: 错误是:

  • 我在IntelliJ中编译Maven项目时遇到了麻烦。 如果运行from commandline=success 如果单击intelj=success中的“重新导入所有Maven项目”图标 如果我单击IntelliJ=success中的“为所有项目生成源和更新文件夹”图标 如果我单击Maven Projects面板中的“install”Lifecycle=success 在Maven“安装”之后,

  • 如果你不知道怎么从 github 上下载 Nutz 的源代码,请看 从 Git 编译 一节 编译通常是个麻烦的问题,依赖关系啊,环境变量啊,等等,全是些没有技术含量的东 东,但是却能搞的你非常头疼。虽然编译 Nutz 是一个相对简单的工作 -- 它编译 的时候不需要依赖第三方 jar 包,但是还是有一些工作要做的。 从我个人的情况来看,我经常在如下三个环境下进行 Nutz 的开发: 公司 - Vi