尽管类路径正确,但 Javac 找不到 SWT 库
Javac cannot find SWT library despite correct classpath
我有一个 Java 项目,它完美地使用了 SWT 和 compiles/runs。
然而,当我尝试通过 Ant 进行编译时,javac 无法找到 SWT 库,尽管 build.xml 指定了正确的类路径。
SWT 库位于 C:\my_work\Eclipse.6-64\plugins\
。如下所示(在 javac
标签下,这个类路径是这样指定的。
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.6-64\plugins\"/>
</java>
</target>
<target name="compile">
<javac includeantruntime="false" srcdir="./src" destdir="staging">
<classpath path="C:\my_work\Eclipse.6-64\plugins\"></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.6-64\plugins\" includes="org.eclipse.swt.win32.win32.x86_64_3.6.0.v3650b.jar" />
</jar>
<record name="./MyProject.log" loglevel="verbose" action="start"/>
上面给出了导入语句的错误,如下所示:
error: package org.eclipse.swt does not exist
import org.eclipse.swt.SWT;
^
为什么在正确指定类路径的情况下javac 找不到SWT 库?
另外,我怎样才能找到 javac 在找什么?日志——即使是在详细模式下——也没有告诉我 javac 试图在哪里找到这些导入语句。
似乎<classpath path="C:\my_work\Eclipse.6-64\plugins\"></classpath>
没有添加依赖项来编译类路径
这种方式适合我:
<target name="compile">
<javac includeantruntime="false" srcdir="./src" destdir="staging">
<classpath>
<fileset dir="C:\my_work\Eclipse.6-64\plugins">
<!-- <include name="**/*.jar" /> -->
<include name="org.eclipse.swt.*.jar" />
</fileset>
</classpath>
</javac>
</target>
SWT 为独立的 Java 应用程序提供了一个单独的 Jar。
您可以从 here 下载最新版本 - 查看页面底部附近的 'SWT Binary and Source' 部分。
我有一个 Java 项目,它完美地使用了 SWT 和 compiles/runs。
然而,当我尝试通过 Ant 进行编译时,javac 无法找到 SWT 库,尽管 build.xml 指定了正确的类路径。
SWT 库位于 C:\my_work\Eclipse.6-64\plugins\
。如下所示(在 javac
标签下,这个类路径是这样指定的。
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.6-64\plugins\"/>
</java>
</target>
<target name="compile">
<javac includeantruntime="false" srcdir="./src" destdir="staging">
<classpath path="C:\my_work\Eclipse.6-64\plugins\"></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.6-64\plugins\" includes="org.eclipse.swt.win32.win32.x86_64_3.6.0.v3650b.jar" />
</jar>
<record name="./MyProject.log" loglevel="verbose" action="start"/>
上面给出了导入语句的错误,如下所示:
error: package org.eclipse.swt does not exist
import org.eclipse.swt.SWT;
^
为什么在正确指定类路径的情况下javac 找不到SWT 库?
另外,我怎样才能找到 javac 在找什么?日志——即使是在详细模式下——也没有告诉我 javac 试图在哪里找到这些导入语句。
似乎<classpath path="C:\my_work\Eclipse.6-64\plugins\"></classpath>
没有添加依赖项来编译类路径
这种方式适合我:
<target name="compile">
<javac includeantruntime="false" srcdir="./src" destdir="staging">
<classpath>
<fileset dir="C:\my_work\Eclipse.6-64\plugins">
<!-- <include name="**/*.jar" /> -->
<include name="org.eclipse.swt.*.jar" />
</fileset>
</classpath>
</javac>
</target>
SWT 为独立的 Java 应用程序提供了一个单独的 Jar。
您可以从 here 下载最新版本 - 查看页面底部附近的 'SWT Binary and Source' 部分。