代码之家  ›  专栏  ›  技术社区  ›  nash

简单的命令行Java编译

  •  5
  • nash  · 技术社区  · 15 年前

    所以我不得不把一个java项目发给我们公司以外没有java经验的人,他们需要编译它。有没有一种简单的方法可以在windows命令行上完成,而不需要写出文件列表?

    javac *
    

    在包层次结构根目录下的文件夹中。这个球场里有什么东西吗?

    5 回复  |  直到 15 年前
        1
  •  8
  •   JustJeff    15 年前

    从表示包层次结构基础的文件夹中,假设入口点类名为Main,则在名为app的包中,

    javac -classpath . app/Main.java
    

    如您所说,如果您有“多个entry”类,那么您至少必须从依赖关系层次结构中标识所有这些顶级类,这些类可以作为javac的进一步参数列出,并在包出现时指定它们。这样,假设您还需要从其他.Entry开始

    javac -classpath . app/Main.java other/Entry.java 
    

        2
  •  5
  •   Stephen C    15 年前

    为他们提供一个Ant脚本,该脚本使用类路径上的正确库进行构建,等等。该脚本还可以执行其他任务,比如构建jar等等。

    这需要那个人下载并安装Ant,但这并不难(没有什么可以阻止你为他们提供一个合适的Ant发行版来安装。或者甚至向他们发送一个在树中预装了Ant副本的发行版ZIP文件。)

    提供Ant脚本意味着您可以避免它们落入Java新手的陷阱,例如忘记设置类路径、位于错误的目录中、忘记重新编译依赖文件等等。另外,它更“专业”。

        3
  •  4
  •   Cheeso    15 年前

    javac BaseProgram.java 将从同一目录树中的当前目录及其引用的源代码中可用的所有类编译BaseProgram.java。

    如果BaseProgram引用Class1和Class2,并且它们在Class1.java和Class2.java的同一目录中可用,那么它们也将被编译。同样地,如果它们在包中,并且包目录可用,那么它们将被编译。

        4
  •  2
  •   Robert Conn    15 年前

    您可以构建一个文件,列出要编译的所有类(摘自javac手册页)-

    示例-两个Arg文件 您可以创建两个参数文件——一个用于javac选项,另一个用于 另一个用于源文件- 名称:(注意下面的列表没有行的延续

       Create a file named options containing:
    
              -d classes
              -g
              -sourcepath /java/pubs/ws/1.3/src/share/classes
    
       Create a file named classes containing:
    
              MyClass1.java
              MyClass2.java
              MyClass3.java
    
       You would then run javac with:
    
              % javac @options @classes
    

    也可以在命令行上使用*.java。

    javac greetings/*.java
    

    (再次从

    或者,您为什么不直接将源代码编译成一个jar,让您的客户可以使用他们的JRE运行—特别是考虑到他们不懂Java?

        5
  •  0
  •   Philip    7 年前

    一个简单的方法是使用:

    javac *.java.