我正在使用Notepad ++编写我的Java代码,并使用命令提示符来编译和运行它。以下是我的示例Java代码,
package abraKadabra;
public class SuperClass{
protected int anInstance;
public static void main(String [] abc){
System.out.println("Hello");
}
}
但是,此文件具有以下文件夹结构:
“ usingprotected \ superPkg”(usingProtected是C中层次结构中某个位置的文件夹:)
因此,这里的包名称应该类似于usingProtected.superPkg,而不是我写的abraKadabra。
但是,当我从命令提示符下编译此Java代码时,它编译良好,没有任何错误或警告。为什么会这样呢?软件包名称不应该遵循文件夹结构吗?如果应该,它将如何坚持下去?
例如,如果我的包名称正在使用Protected.superPkg,则编译器将按相反顺序进行检查。当前的工作目录应为superPkg,然后父目录应为usingProtected并且已完成。用包名检查文件夹结构吗?
经过一些试验后,我获得了如何使用包名称以及如何从命令提示符下运行Java类文件的方法。
假设以下是我的Java源文件:
package mySample;
public abstract class Sample{
public static void main(String... a){
System.out.println("Hello ambiguity");
}
}
该文件位于目录“ D:\ Code N Code \ CommandLine”中。
现在,当使用以下命令编译源代码时(通过从cmd转到以上目录):
javac -d . Sample.java
这将在当前目录中自动创建“ mySample”文件夹。因此,我的类文件Sample.class存在于目录“ D:\ Code N Code \
CommandLine \ mySample”中。编译器根据我在源代码中提供的程序包名称创建了这个新文件夹“ mySample”。
因此,如果我给我的包名称是“ package com.mySample”,则编译器将创建两个目录并将我的类文件放置在“ D:\ Code N Code \
CommandLine \ com \ mySample”中。
现在,我仍位于当前的工作目录中,即“ D:\ Code N Code \ CommandLine”中。为了运行我的类文件,我给出以下命令:
java mySample.Sample
因此,我给出了程序包的完整层次结构,然后给出了类名。Java解释器将在当前目录中搜索“ mySample”目录,并在该目录中搜索“
Sample.class”。它正确并成功运行它。:)
现在,当我询问为什么要编译错误的程序包源代码时,虽然可以成功编译代码,但是当我运行类文件时却给出了NoClassDefFoundError。因此,以上方法可用于从命令行使用程序包名称。
问题内容: 我想知道在Eclipse IDE中用于Java EE开发的文件夹结构和包之间有什么区别。 我们什么时候使用哪个,为什么? 应该怎么做 创建一个像src / com / utils这样的文件夹结构,然后在其中创建一个类 创建一个像src.com.util这样的包,然后在其中创建一个类 如果我以后必须编写一个ant脚本进行部署,哪个选项会更好,更容易部署? 如果我要使用文件夹结构,那么部署
问题内容: 我正在尝试仅将原始文件从一个目录复制到另一个目录,但是某些文件具有相同的名称…我正在尝试使用哈希来比较文件,如果其不在目录中发送并且名称相同,它到file_name.something。目前,我正在获取一些文件,并且具有相同名称的文件正在被覆盖…任何人都可以提出建议吗? 问题答案: 您将哈希与文件名进行比较。你需要类似的东西 计算目标文件夹中每个文件的哈希值。 此外,在当前版本中,您的
问题内容: 我正在做一个大项目,该项目很可能最终包含成千上万行代码,对于当前结构,我喜欢这样: 这样做的问题是controllers和models目录包含很多文件,全部使用和。因此,我正在考虑将其拆分为: 凡在控制器包的用户文件中可能包含的文件,等等。 现在,我读到像或那样的软件包是不好的做法,但是我担心对这两个软件包进行命名可能不是一个好主意,因为它们是同一项目的一部分(即使它们位于不同的目录中
我有两个类,它们具有相同的类名并使用相同的包名。但是,这两个类文件位于不同的目录中。这两个类之间的另一个不同之处是,每个类中都有其他类中没有的方法。本质上,我想将这些方法拆分为两个使用相同名称但不同文件夹的单独文件。 理论上,我认为这是可能的,因为Java编译器在构建输出时确实维护了目录结构。所以在运行时,如果在类中调用了一个方法,Java可能会在任何一个文件中找到该方法。 这可能吗?我使用的是I
1. 软件架构与编译方法
问题内容: 从http://cs-fundamentals.com/tech-interview/java/which-java-package-is- imported-by-default.php 在每个Java程序中,可以有一个未命名的程序包,它只是一个没有名称的程序包。如果在编写类定义时省略了package语句,则将类名放入默认包中,该包没有名称。Java编译器会自动导入此软件包。 真的吗