java 编译中文件名和类名不一致的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 编译中文件名和类名不一致的问题相关的知识,希望对你有一定的参考价值。

我写了个编译好的自定义的jar包a.jar(可以运行,没有问题)
在其他程序java程序b中引用它
在red flag上编译b时会报a中文件名和类名不一致
报错的信息如:a.XmlParse.java:XmlParse类应该保存在XmlParse.java中
很奇怪的错误它的错误信息中文件名和类名都是相同的,还报错。
此外在windows上编译b不会出错,可以正常运行
希望有高手指教
谢谢
我的java文件名是大写
文件中也只有一个public类
类名和文件名也是相同的
在windows下面是没有问题的
在linux下就出文件名和类名不同的错误了
奇怪啊

参考技术A 方式一:文件名和类名一致
文件名为:HelloJava.java

文件内容:

public class HelloJava
public static void main(String[] args)
System.out.println("HelloJava!");


方式二:文件名和类名不一致
文件名为:HelloJava.java

文件内容:

class Hello
public static void main(String[] args)
System.out.println("Hello!");


注意:文件名与类名一致的时候,public class XXX,public是必须的 ,不一致的时候无需写public
参考技术B java文件的名字要和文件中public类的名字保持一致,并且一个文件中可以有多个类,但有且只能有一个public类型的类本回答被提问者和网友采纳 参考技术C 你在Linux下是否隐藏了文件扩展名 也许你的文件名是XmlParse.java.java 参考技术D 可能是目录结构不正确,你最好能发布一下你的源代码 第5个回答  2009-04-17 我郁闷了。。java文件名开头文件必须要是大写这个应该知道吧

java运行的问题

一般的java都是要求文件名和类名一致,但是也可以不一样只是编译和运行的名字不一样而已。

比如:java文件:test.java:

public class helloworld {
public static void main(String[] args){
System.out.println("hello,world");
}

}

在都是运行的命令为:

javac test.java

java helloworld

以上是关于java 编译中文件名和类名不一致的问题的主要内容,如果未能解决你的问题,请参考以下文章

java基础巩固——类名与文件名

Java知识合集

java基础--pulic class与class的区别

反编译,修改jar文件

java学习的知识点---第一部分

关于使用public class 和 class声明类的区别