【问题标题】:How to compile a java program from directory?如何从目录编译java程序?
【发布时间】:2011-05-08 06:27:28
【问题描述】:

我正在学习java,我想知道如何从其他目录编译java程序。

例如,我的编译器在我的驱动器c:\ 中,我想从驱动器e:\ 编译我的java 程序

我该怎么做? 我收到这个错误,这是什么意思?

【问题讨论】:

  • 您在代码中使用包...所以它在运行时显示 NoClassDefFoundError 您应该创建包含您的包名称的文件夹...编译该 java 文件...然后您可以运行该文件从该 java 文件目录的上一个目录...例如,您的代码是包测试;类分配{ public static void main(String args[]){ System.out.println("Hai"); } } 它保存在这个路径“E:\java\test”编译这个文件,你可以从这个路径运行这个文件“E:\java”命令运行这个文件java test.Assignment E:\java> java test。作业

标签: java compilation


【解决方案1】:

当前目录应该在默认的 CLASSPATH 中,但也许不是。试试java -cp . Assignment

【讨论】:

    【解决方案2】:

    自从我做java以来​​已经有一段时间了,但似乎编译不是你的问题。由于javac 正常返回,看来Assignment.java 有问题。你的Assignment 类有没有 main 方法?

    【讨论】:

      【解决方案3】:

      那么简单的方法是设置你的类路径变量。由于从屏幕截图看来您使用的是 Windows,我建议您右键单击我的电脑并选择属性。进入高级设置,点击环境变量选项卡。

      然后会弹出一个新窗口,底部有系统变量。选择新的并创建一个变量 JAVA_HOME = 你安装 java 的路径,例如它的 c:\java

      现在,一旦您将此搜索添加到现有变量路径并选择编辑。现在在最后附加以下 ;%JAVA_HOME%\bin 现在你完成了,你可以在你的计算机上的任何位置运行 java 程序....

      【讨论】:

        【解决方案4】:

        你在你的代码中使用包......所以它在你运行时显示 NoClassDefFoundError 您应该创建包含您的包名称的文件夹...编译该 java 文件...您可以从该 java 文件目录的上一个目录运行该文件...

        例如你的代码是

        package test;
        class Assignment{
        public static void main(String args[]){
        System.out.println("Hai");
        }
        }
        

        它保存在这个路径“E:\java\test

        编译这个文件,你可以从这个路径“E:\java”运行这个文件

        运行该文件的命令

        java test.Assignment
        
        E:\java> java test.Assignment
        

        【讨论】:

          【解决方案5】:

          您的 Assignment.java 顶部是否有 package 声明?如果是这样,请将其删除并重新编译以快速修复。

          要使用 Java 包,您需要一个与包声明相匹配的目录结构。

          例如,假设这是你的 Assignment.java:

          package myjava;
          
          public class Assignment {
              public static void main(String[] args) {
              ....
              ....
          }
          

          你运行这个命令来编译:

          E:\java>javac -d . Assignment.java
          

          如果一切顺利,您将获得 myjava\Assignment.class。 -d . 选项表示“将生成的类文件放在当前目录中”。 javac 为您创建包层次结构作为目录。

          现在您的目录与您的包匹配,这应该可以工作:

          E:\java>java myjava.Assignment
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-03-25
            • 1970-01-01
            相关资源
            最近更新 更多