我想用名称保存我的Java文件,我想编译或运行该文件。这在Java中是否可行?
示例:
class A {
public void display() {
System.out.println("Hello ..How are you..??");
}
}
我希望仅将此文件名保存为.java
。这是否可以在Java中使用,如果可能的话我们可以通过cmd编译这个没有名称的文件?
答案 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