Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX和用Ant编译HelloWorld_Ant_Javafx - Fatal编程技术网

JavaFX和用Ant编译HelloWorld

JavaFX和用Ant编译HelloWorld,ant,javafx,Ant,Javafx,我将在上跟随教程,并在编译代码后尝试运行jar文件输出时收到此错误消息 Error: Could not find or load main class HelloWorld 为了建立一个java开发环境,我去了oracle,下载了他们的代码,并将其放到/usr/lib/jvm/jdk1.8.045中,然后在build.xml文件中指向它,如图所示 在接下来的教程中,我有一个包含以下代码/脚本的项目文件夹: (示例/src/HelloWorld.java) 少了什么 消息“无法找到或加载主类H

我将在上跟随教程,并在编译代码后尝试运行jar文件输出时收到此错误消息

Error: Could not find or load main class HelloWorld
为了建立一个java开发环境,我去了oracle,下载了他们的代码,并将其放到
/usr/lib/jvm/jdk1.8.045
中,然后在build.xml文件中指向它,如图所示

在接下来的教程中,我有一个包含以下代码/脚本的项目文件夹:

(示例/src/HelloWorld.java)

少了什么

消息“无法找到或加载主类HelloWorld”表示Java无法在其类路径中找到
HelloWorld
类。我怀疑这可能是由于清单文件中的
类路径
条目为空:

Class-Path: 
您可能希望通过在Ant构建文件中添加以下内容(类似于中的示例),尝试重写此项以将类路径设置为Jar的根目录:


我的Javafx应用程序有一个可用的ant构建(它是2.2,但可能适合您),该应用程序在win和linux上进行了测试。
这些是关键区别:

<path id="fxant">
    <filelist>
        <file name="${java.home}\..\lib\ant-javafx.jar"/>
        <file name="${java.home}\lib\jfxrt.jar"/>
    </filelist>
</path>

<taskdef resource="com/sun/javafx/tools/ant/antlib.xml"      
    uri="javafx:com.sun.javafx.tools.ant"
    classpathref="fxant"/>

这些是自动添加的,我没有主类和类路径。

我只是尝试了一下。在Win7上工作没有问题。您能将示例文件夹的全部内容压缩并放到web上吗?谢谢您的帮助。您能在您的系统上运行
echo%CLASSPATH%
并共享输出吗?我的类路径没有设置,这可能意味着我需要在build.xml中设置它(或者尝试使用变量来查看它是否有帮助)。整个代码项目在这里都是可用的,这对我来说在Win7上工作没有问题。我没有设置类路径。你能试着用java-cp运行这个文件吗-jar HelloWorld.jar?好的,伙计,我同意你的看法。。。您的环境一定有问题,因为清单文件中的所有行都是自动添加的,所以我在创建jar时没有添加任何清单记录。(+我使用了1.7xJDK的罐子)感谢您的回复!我想您已经了解了一些情况,但是.JAR输出的清单对我来说仍然是空白的=(
$ java -jar HelloWorld.jar 
Error: Could not find or load main class HelloWorld


$ jar tvf HelloWorld.jar 
     0 Mon Apr 27 00:57:58 CDT 2015 META-INF/
   113 Mon Apr 27 00:57:58 CDT 2015 META-INF/MANIFEST.MF
  1014 Mon Apr 27 00:57:58 CDT 2015 HelloWorld$1.class
  1436 Mon Apr 27 00:57:58 CDT 2015 HelloWorld.class




(HwlloWorld.jar  META-INF/MANIFEST.MF)
Manifest-Version: 1.0
JavaFX-Version: 8.0
Class-Path: 
Created-By: JavaFX Packager
Main-Class: HelloWorld
Class-Path: 
<fx:jar destfile="${build.dist.dir}/HelloWorld.jar">
    <fx:application refid="HelloWorldID"/>
    <fx:resources refid="appRes"/>
    <fileset dir="${build.classes.dir}"/>

    <manifest>
        <attribute name="Class-Path" value="."/>
    </manifest>
</fx:jar>
<path id="fxant">
    <filelist>
        <file name="${java.home}\..\lib\ant-javafx.jar"/>
        <file name="${java.home}\lib\jfxrt.jar"/>
    </filelist>
</path>

<taskdef resource="com/sun/javafx/tools/ant/antlib.xml"      
    uri="javafx:com.sun.javafx.tools.ant"
    classpathref="fxant"/>
JavaFX-Application-Class: packagename.MainClass
JavaFX-Class-Path: packagename/MainClass.class