我在 Linux 上使用 ant build 函数来编译一个 java 程序。我有三个java文件,我正在尝试将它们导入我的主文件.java但是我收到一个错误,说
/home/ggaz1/Ser321/Assigns/Assign2/src/main.java:4 error: package Assign2.src does not exist
这是 build.xml 文件。它的路径是
/home/ggaz1/Ser321/Assigns/Assign2
<?xml version="1.0"?>
<project name="Movie Library."
default="targets" basedir="."
xmlns:dn="antlib:org.apache.ant.dotnet"
xmlns="antlib:org.apache.tools.ant"
xmlns:cpptasks="antlib:net.sf.antcontrib.cpptasks">
<property name="src.dir" value="src"/>
<property name="build" value="classes"/>
<property environment="env"/>
<property name="user" value="${env.USERNAME}"/>
<target name="targets">
<echo message="Targets are clean, prepare, build, execute, and targets"/>
</target>
<path id="compile.classpath">
<pathelement location="${build}"/>
</path>
<target name="prepare">
<mkdir dir="${build}" />
</target>
<target name="clean">
<delete dir="${build}" failonerror="false"/>
</target>
<target name="build" depends="prepare">
<javac srcdir="${src.dir}"
includeantruntime="false"
destdir="${build}">
<src path="src"/>
<classpath refid="compile.classpath"/>
</javac>
</target>
<target name="execute.java" depends="build"
description="Run the program">
<echo message="command line execute: java -cp classes main, MovieDescription, MovieLibrary" />
<java classname="main" fork="yes">
<classpath refid="compile.classpath"/>
</java>
</target>
</project>
提前致谢
你实际上没有任何包。所有 Java 源代码文件都位于 src 文件夹中。src 文件夹是包的根目录。如果你想要一个包assign2
你必须在src中创建一个名为assign2
的文件夹,你应该把属于assign2
包的所有Java文件放到该文件夹中。
假设您的Main
类本身没有包,并且您的类MovieDescription
和MovieLibrary
在包assign2
中。
然后,您的文件布局应如下所示:
--src
|
+---- Main.java
|
+---- assign2
|
+---- MovieDescription.java
|
+---- MovieLibrary.java
然后Main.java
没有任何包声明。
我MovieDescription.java
和MovieLibrary.java
包声明应该是:
package assign2;
[...]
Main.java
中的进口看起来像:
import assign2.MovieLibrary;
import assign2.MovieDescription;
也许你应该看看Oracle Java教程,课程:包。
根据 Java 命名约定,对于包和变量,您应该只使用以小写字母开头的名称。类应始终以大写字母开头。