要求:
仅命令行,即没有IDE
不想使用classpath
参数
作业系统:OS X v10.6.8
脚步:
设置CLASSPATH环境变量:export CLASSPATH="/path-jar-files-are-at/*"
编译我的Java应用程序:javac MyApp.java
启动我的Java应用程序:java MyApp
启动后,出现以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: MyApp
Caused by: java.lang.ClassNotFoundException: MyApp
使用classpath参数没有这个问题
编译我的Java应用程序:
javac -classpath /path-jar-files-are-at/* MyApp.java
启动我的Java应用程序:
java -classpath /path-jar-files-are-at/* MyApp
有任何想法吗?
最佳答案
CLASSPATH不应包含结尾的“ / *”-不会为您提供有效的类路径。 Shell正在扩展/ *并用空格/换行符分隔列表-而不是“:”字符。
如果您仍然真的希望它以这种(动态)方式工作,请尝试如下操作:
export CP=`ls /path-jar-files-are-at/*`; CP=`echo $CP | sed 's/\.jar\s/.jar:/g'`; CP="$CP:/path-jar-files-are-at"
关于classpath - 用CLASSPATH环境变量替换classpath参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8584916/