我在linux上使用ant build函数来编译java程序。我有三个java文件,我正在尝试将它们导入到我的main.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>
提前致谢
答案 0 :(得分:0)
你实际上没有任何包裹。您的所有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 Tutorial, Lesson: Packages。
根据Java命名约定,您应该只使用以小写字母开头的包和变量名称。类应始终以大写字母开头。