簡體   English   中英

Java編譯命令行

[英]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 ,您應確保:

  1. 您使用主類的全限定類名。
  2. 主類應該在類路徑中。

可以通過3種方式設置類路徑:

  1. 可以在環境變量CLASSPATH設置它。
  2. 使用-cp選項,它將覆蓋CLASSPATH
  3. 如果您都不使用,則當前目錄為類路徑。

請注意,如果文件的結構如下:

bin -
     |
     com -
         |
         mypackage -
                   |
                   Hello.class

並且Hello的包名稱是com.mypackage ,那么以下命令應該起作用:

java -cp C:\projects\myprojct\bin com.mypackage.Hello

或者,您可以將cd C:\\projects\\myprojct\\binC:\\projects\\myprojct\\bin並僅使用:

java com.mypackage.Hello

運行這個很好

java averageAmpCov / src / averageAmpCov

但是我猜你忘了先設置您的classpath設置class path

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM