[英]java compile command line
我在Intellij IDEA中編寫了一個程序。 它可以在IDE中正常運行,但是我在命令行中遇到了問題(我很少在命令行中運行我的應用程序,我想我只是錯過了一步。)所以這就是問題所在。 如果我導航到文件所在的位置:
cd averageAmpCov/src/
然后運行我的程序,效果很好:
java averageAmpCov
Error: Parameter 'out' is required.
Error: Parameter 'in' is required.
Usage: java averageAmpCov
(-o|--outputlocation) <out> (-i|--inputlocation) <in>
(-o|--outputlocation) <out>
Where is the input file to be put? Full path and desired file name
(-i|--inputlocation) <in>
但是,當我嘗試從像這樣的文件夾外部運行時:
java averageAmpCov/src/averageAmpCov
我收到一個可悲的錯誤:
Exception in thread "main" java.lang.NoClassDefFoundError: averageAmpCov/src/averageAmpCov (wrong name: averageAmpCov)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
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:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
其他一些帖子說這可能是類路徑問題,但我不太了解該怎么做。 我在這里做錯了什么?
嘗試在class文件夾外運行程序時,請將classpath設置為.class文件所在的目錄:
java -cp averageAmpCov/src averageAmpCov
現在,您將不會收到NoClassDefFoundError
。 Java會在類路徑中查找要加載和運行的.class文件。 類名參數必須是實際的類名,不涉及任何目錄。
要正確使用java
,您應確保:
可以通過3種方式設置類路徑:
CLASSPATH
設置它。 -cp
選項,它將覆蓋CLASSPATH
。 請注意,如果文件的結構如下:
bin -
|
com -
|
mypackage -
|
Hello.class
並且Hello
的包名稱是com.mypackage
,那么以下命令應該起作用:
java -cp C:\projects\myprojct\bin com.mypackage.Hello
或者,您可以將cd
C:\\projects\\myprojct\\bin
到C:\\projects\\myprojct\\bin
並僅使用:
java com.mypackage.Hello
運行這個很好
java averageAmpCov / src / averageAmpCov
但是我猜你忘了先設置您的classpath設置class path
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.