How to compile and run with this folder structure

梦想与她 提交于 2019-11-28 02:24:09

Lets say you have your code files in

[someDirectory]
  |
  +-[lib]
  |  |
  |  +-someLib.jar
  |  +-someOtherLib.jar
  |  +-...
  |
  +--[src]
       |
       +-[net]
           |
           +-[name]
                |
                +-[one]
                   |
                   +-[two]
                       |
                       +-[main]
                           |
                           +-Main.java <- code you want to compile
                                          and execute

then if your console is in

someDirectory>

you can compile it with

someDirectory>javac -cp "lib\*" src\net\name\one\two\main\Main.java

but this will produce Main.class file in same directory as Main.java so to execute code from net.name.one.two.main.Main class you would need to include src directory to classPath because this directory contains package that Main class is placed, so you would need to use command

someDirectory>java -cp "src;lib\*" net.name.one.two.main.Main

But it is good practice to separate class files from source files. To do this you can add -d (directory) parameter while compiling pass directory which should have compiled class files. So first create your classes directory at the same level as src directory and execute

someDirectory>javac -d "classes" -cp "lib\*" src\net\name\one\two\main\Main.java

and now to be able to execute your Main class instead creating confusion by src directory to classPath you will have to add classes directory which is more intuitive.

someDirectory>java -cp "classes;lib\*" net.name.one.two.main.Main.java

Try this

javac -cp .;lib/lib1.jar;lib/lib2.jar src/net/*.java

lib1 and lib2 are your libraries. It assume your libraries are in lib folder. You may also need to change the destination folder for .class files.

To run the application use

java -cp bin;lib/lib1.jar;lib/lib2.jar net.mypackage.MyMainclass

net...

It assume your .class files are in bin folder.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!