gpt4 book ai didi

java - 包/路径/导入逻辑问题

转载 作者:太空宇宙 更新时间:2023-11-04 05:09:00 25 4
gpt4 key购买 nike

我在一个家庭作业项目中遇到了一个问题,我们正在创建一个类似 MVC 的类包。使用 Debian 9.x.x 虚拟机,我们将使用 ant 文件来构建/编译/执行。

我提供了强制要求的整体目录结构以及强制的源目录结构的屏幕截图。

我们专门在结构中包含一个源文件:

enter image description here

考虑到这一点,我们应该将源文件打包为 ser321.assign3.kajefr1.client。我已经尝试过将其作为相对路径(我认为这没有意义,因为本地路径不包含类包路径中所需的内容)和绝对路径。但是,我的类(class)似乎无法互相识别。我收到以下错误。

enter image description here

据我了解,包路径并不重要,因为它可以编译到它想要的位置。我尝试从其他类导入,但似乎没有帮助,更不用说它们都在同一目录中,所以我不知道为什么 Message 似乎对其他类不可见。我包含了我的 build.xml 和源文件的开头,因为我的错误似乎是在打包/导入中,但如果需要其余代码,我也可以提供。

构建.xml:

    <project name="Ser321 Spring 2019 Assign2" default="targets" basedir=".">
<!-- set global properties for this build -->

<property name="src" value="./src" />
<property name="build" value="./classes" />
<property name="docs" value="./docs" />
<property name="lib" value="./lib" />
<property name="userId" value="kajeffr1" />
<property name="parentDir" value="${user.dir}${file.separator}" />
<path id="compile.classpath">
<pathelement location="${build}/"/>
<fileset dir="${lib}">
<include name="*.jar"/>
</fileset>
</path>
<target name="targets">
<echo message="targets are clean, prepare, compile, and execute. "/>
</target>

<target name="prepare">
<!-- Create the time stamp -->
<tstamp/>
<!-- Create the build directory structure used by compile -->
<echo message="home defined as: ${home}" />
<mkdir dir="${build}" />
</target>
<target name="compile" depends="prepare"
description="Compile Java sources">
<javac srcdir="${src}/client"
includeantruntime="false"
destdir="${build}">
<classpath refid="compile.classpath"/>
</javac>
</target>
<target name="execute" depends="compile"
description="execute the execute mail client">
<java classname="ser321.assign2.kajeffr1.client.MessageController"
fork="yes">
<arg value="kajeffr1"/>
<arg value="localhost:8080"/>
<classpath refid="compile.classpath"/>
</java>
</target>

<target name="clean">
<!-- Delete the ${build} and ${docs} directory trees -->
<delete dir="${build}" />
</target>
</project>

消息.java:

        package ser321.assign2.kajeffr1.client;

import java.io.Serializable;
import org.json.JSONObject;

public class Message implements Serializable { ... }

MessageLibary.java:

    package ser321.assign2.kajeffr1.src.client;

public interface MessageLibrary { ... }

MessageLibraryImpl.java:

    package ser321.assign2.kajeffr1.src.client;

import org.json.*;
import java.io.*;
import java.util.*;

public class MessageLibraryImpl implements Serializable, MessageLibrary { ... }

MessageController.java:

    package ser321.assign2.kajeffr1.src.client;

//other java imports

public class MessageController extends MessageGui //MessageGUI is provided in jar files { ... }

ant 文件正在构建“classes”文件,但无法将任何内容编译到其中。

最佳答案

我只是缺少“.src”。在我的 Message.java 中。我不敢相信我错过了多少次。

关于java - 包/路径/导入逻辑问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57946001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com