如何在没有名字的情况下保存java文件

时间:2013-10-06 19:35:05

标签: java

我想用名称保存我的Java文件,我想编译或运行该文件。这在Java中是否可行?

示例:

class A {
  public void display() {
    System.out.println("Hello ..How are you..??");
  }
}

我希望仅将此文件名保存为.java。这是否可以在Java中使用,如果可能的话我们可以通过cmd编译这个没有名称的文件?

4 个答案:

答案 0 :(得分:5)

似乎有可能!令我惊讶的是,你的例子编译得很好。 (我用过1.7)

javac .java命令在同一目录中生成A.class

但是,如果您将'A'类声明为public,则无法进行此操作。 (在Java中,声明为public的所有类必须以文件名作为公共类名存储)

答案 1 :(得分:1)

如果你试试,你会得到

.java:1: error: class A is public, should be declared in a file named A.java

所以可能不是。

答案 2 :(得分:1)

我相信你有点误解了文件命名规则。如果您的班级为public,那么您将收到错误class Cat is public, should be declared in a file named Cat.java,因为JLS要求这样做。但是,只要它不包含.java,就没有什么能阻止您创建名为public class的文件并对其进行编译。如果它确实包含public class,那么你必须给class没有名字,这是Java中无法实现的。

档案.java

的内容
class Cat {
    private final static int four = 42;
    private final int age;
    public Cat(int age) {
        this.age = four;
    }
    public void meow() {
        System.out.println("Meow.");
    }
}

<强>命令

javac .java

<强>输出

一个名为Cat.class的文件,其中包含模拟真猫的所有必要组件。

那就是说,请不要为了你自己和任何看过你的代码理智的人而做这样的事情。

答案 3 :(得分:0)

您可以在目录内编译,而不是特定于文件名

javac  *.java