编译后我无法运行我的java应用程序。我的猜测是我的课程路径有问题。
为了清理我已经使用了IDE,Eclipse,我最初用它来编译和运行我的应用程序。它完美运行,但现在我需要严格通过终端/命令行运行它。原因是我遵循一条指导原则,如果它不能在命令行上运行,那么它就不存在了。 (帮助我真正了解我的申请)
无论如何这里是环境
32位Linux AWS发行版(基于CentOS)
javac /home/ec2-user/staff/src/com/staffS3/Helpers/Constants.java /home/ec2-user/staff/src/net/UploadFile.java
正确编译(Atleast没有任何错误)
java UploadFile
Exception in thread "main" java.lang.NoClassDefFoundError: UploadFile (wrong name: net/UploadFile)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: UploadFile. Program will exit.
已经有一段时间了。希望有人会注意到我遗失的那些小事(或巨大事情):)。
提前致谢
答案 0 :(得分:4)
运行它
java UploadFile
你不能cd
进入src/net
目录。只需转到src
并执行
java net.UploadFile
您需要站在一个目录中,java
才能找到文件net/UploadFile.class
。
“Wrong Name ”错误消息(及其原因)描述得很清楚here。
另请注意,通过-cp
设置类路径是首选方法。即,尝试
java -cp .:/home/ec2-user/staff/lib/aws-java-sdk-1.2.1.jar net.UploadFile
最后,混合.java文件和.class文件是个坏主意。运行-d
时使用javac
开关指定类文件的目标目录。调用目录bin
或build
。
答案 1 :(得分:2)
基本上看起来你正试图使用基本名称来运行它,不包括包。
尝试从“src”文件夹运行它,然后运行java net.UploadFile