【发布时间】:2013-04-23 03:08:17
【问题描述】:
我的代码在 Eclipse 中运行良好,没有构建路径错误或任何问题,但是当我尝试从命令行运行我的 Java 程序时,我在我的一个内部类中得到了一个 classNotFound Exception。我不仅不明白我是如何得到这个异常的,而且我什至不确定如何调试它,因为它在 IDE 环境中看起来和工作正常。任何帮助表示赞赏!
编辑
我正在为名为 J-- 的 Java 子集编写一个编译器,所以我真的不想深入了解它是如何工作的。但我不会调用javac HelloWorld.java,而是调用等效的j-- HelloWorld.java。 javac 工作正常。您可能会说问题出在您的代码上,但它再次在 Eclipse 中编译并运行良好。因此,某处似乎存在脱节。如果有帮助,这里是 Windows bash 脚本:
set BASE_DIR=%~dp0
set j="%BASE_DIR%\..\"
set JAVA=java
set CPATH="%BASE_DIR%\..\lib\j--.jar;%BASE_DIR%\..\lib\spim.jar"
if "%CLASSPATH%" == "" goto runApp
set CPATH=%CPATH%;"%CLASSPATH%"
:runApp
%JAVA% -classpath %CPATH% jminusminus.Main "j--" %*
set JAVA=
set BASE_DIR=
set CPATH=
编辑
感谢 Aubin,输出 .jar 文件并将其与 class not found 进行比较是我能够解决此冲突的方法。
【问题讨论】:
-
你能给我们看一些代码吗?你是如何在命令行上编译它的?
-
显示你在命令和文件夹结构中的尝试
-
Eclipse 会处理您的课程位置,您需要在 Java 调用中指定
CLASSPATH。 -
我添加了一些更新。 @PM77-1 你能详细说明一下吗?
-
在Eclipse中如果你进入
"Run as" -> "Configuration",你会看到你当前的项目默认包含在CLASSPATH中。外界不知道你的项目是什么。此外,除非您指定,否则当前目录不在CLASSPATH中。
标签: java command-line javac