所以我想运行我刚刚编译的 Start.class 文件,它是我从 Start.java 编译的。问题是它会抛出这个错误:
java Start
Exception in thread "main" java.lang.NoClassDefFoundError: Start (wrong name: files/Start)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
我已经在 Eclipse 中编写了该程序,我想从终端运行它。这里有什么问题?
新错误:
java files.Start http://mirror.symnds.com/software/Apache/tomcat/tomcat-7/v7.0.53/bin/apache-tomcat-7.0.53.zip
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/io/IOUtils
at files.Start.main(Start.java:93)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.IOUtils
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 1 more
请看一下如何从命令行编译和运行 Java 代码 http://www.sergiy.ca/how-to-compile-and-launch-java-code-from-command-line/您将在其中获取有关类路径以及如何在类路径中添加依赖 jar 的信息。
这是上面链接的详细信息。
Task
假设我们有一个相当标准的 java 项目,它由三个顶级文件夹组成:
/bin- 将包含已编译的.class 文件的空文件夹
/lib- 包含第三方 .jar 文件
/src- 包含.java源文件`
我们的任务是从根文件夹编译并启动项目。我们将使用 Windows 操作系统作为示例(在 Unix 系统上,唯一的区别是路径分隔符号 - “:”而不是“;”)。
编译Java代码
第一步是将纯文本 .java 源代码编译为 Java 虚拟机字节代码(.class 文件)。这是通过 JDK 附带的 javac 实用程序完成的。
假设我们在应用程序根文件夹中尝试从 com.example 包编译 Application.java 文件,该文件使用 lib 文件夹中的 lib1.jar 和 lib2.jar 库到目标 bin 文件夹,编译命令应具有以下格式:
javac -d bin -sourcepath src -cp lib/lib1.jar;lib/lib2.jar src/com/example/Application.java
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)