精华内容
下载资源
问答
  • linux命令行中编译运行java文件

    万次阅读 2016-03-03 22:46:41
    同时加载编译多个jar包和java文件在个人平常使用或者当我们把代码部署到linux服务器上的时候,我们经常需要通过命令行编译运行java文件,网上关于这个的方法大多是通过javac -cp filePath/jarName.jar javaName....

    同时加载编译多个jar包和java文件

    在个人平常使用或者当我们把代码部署到linux服务器上的时候,我们经常需要通过命令行编译和运行java文件,网上关于这个的方法大多是通过

    javac -cp   filePath/jarName.jar      javaName.java

    这种方法。但是加入在filepath文件夹下面有好几个jar包,在src文件夹中有好几个java文件的时候,这个方法就很笨拙了,我在网上看的资料非常乱,其实下面一个非常简单的指令就可以解决了:

    javac -Djava.ext.dirs=filePath  *.java//注意这里只需要指定到jar包所在的文件夹就可以了

    其中*.java表示可以一次编译所有的java文件。

    把编译文件放到指定目录

    如果想要把编译后的文件放到指定目录,只需要在java文件后加上 -d outputFilePath就可以了,例如下面:

    javac -Djava.ext.dirs=filePath  *.java  -d outputFilePath

    执行java文件

    执行java程序页是同样,只需要把javac换成java,后面写上主函数所在的java文件的名称就可以了,不用加后缀。例如下面

    javac -Djava.ext.dirs=filePath  MainJavaName

    如果想要把编译后的文件放到指定目录,只需要在java文件后加上 -d outputFilePath就可以了

    实例演示

    我们以实际例子来演示
    在ServerProgram文件夹下面有个Labrary文件夹,里面有多个jar文件,Src是源文件包,里面有三个java文件,Output文件夹是我想输出编译文件的地方,
    这里写图片描述
    编译过程

    //首先进入Src文件夹
    
    javac -Djava.ext.dirs=../Library  *.java -d ../Output
    
    //指定输出编译文件的位置为上级目录的Output文件夹
    

    执行过程

    先进入Output文件夹

    //主函数所在文件是Server.java
    java -Djava.ext.dirs=../Library  Server
    展开全文
  • Linux下用命令行编译运行Java总结

    万次阅读 多人点赞 2018-05-11 18:05:45
    最近使用腾讯云的Cloud Studio写Java,只能使用命令行进行编译运行,趁此机会,学习一下Linux的一些常用命令。平时windows下IDE用习惯了,现在用命令行进行编译运行,发现其实问题还是挺多的,所以写下这篇文章。 ...

    最近使用腾讯云的Cloud Studio写Java,只能使用命令行进行编译运行,趁此机会,学习一下Linux的一些常用命令。平时windows下IDE用习惯了,现在用命令行进行编译运行,发现其实问题还是挺多的,所以写下这篇文章。


    1.javac命令行

    javac用于编译java源文件,生成.class文件。形式如下

    javac [option] source
    

    常用的option选项有如下

    -classpath <路径>(可以简写成 -cp):指定要使用的类路径或要使用的jar包的路径。

    -d <路径>:指定源文件编译后生成的.class文件的存放位置。


    2.java命令行

    java用于运行生成的.class文件。形式如下

    java [option] classname [arguments]
    

    常用的option选项有如下

    -classpath <路径>(可以简写成 -cp):指定要使用的类路径或要使用的jar包的路径。

    [arguments]:传递给main函数的参数。


    3.编译运行一个单独的Java文件

    在test文件夹下有一个Test.java文件,结构如下
    这里写图片描述
    Test.java代码如下

    public class Test { 
        public static void main(String[] args) { 
            System.out.println("Hello World!"); 
        }
    }
    

    (1)编译生成的.class文件在当前文件夹下

    // 编译
    javac Test.java
    // 运行
    java Test
    // 输出
    Hello World!
    

    (2)也可以指定编译生成的.class文件的路径,比如生成在当前文件夹下的bin文件夹下

    // 编译
    javac -d ./bin Test.java
    // 运行
    java -cp ./bin Test
    // 输出
    Hello World!
    

    当指定生成的目录后,运行时也得指定相应的目录,不然会找不到文件。
    这里写图片描述


    4.编译运行一个带包的java文件

    这里写图片描述
    Test.java代码如下

    package com.codeliu;
    public class Test { 
        public static void main(String[] args) { 
            System.out.println("Hello World!"); 
        } 
    }
    

    (1)编译生成的.class文件在当前文件夹下

    // 首先得进入到.java文件所在的文件加下,再进行编译
    javac Test.java
    // 退出到最外层包,再运行,否则找不到文件
    java com.codeliu.Test
    // 输出
    Hello World!
    

    对于在包下的文件,如果编译后直接运行,会找不到文件,必须得退出到最外层包,然后使用完整的包名+文件名进行运行。
    这里写图片描述
    (2)指定.class文件的生成路径,使用IDE自动编译的时候,我们可以看到源文件一般在src文件夹下,而.class文件在bin文件夹下,这是因为JVM指定了.class文件的路径。

    // 编译,生成在与最外层包同级的bin文件夹下,首先退出到最外层包
    javac -d ./bin com/codeliu/*
    // 运行(windows中把:改成;),-cp表示告诉jvm去该路径下寻找文件
    java -cp bin: com.codeliu.Test
    // 输出
    Hello World!
    

    这里写图片描述


    5.同一个包下,一个类调用另一个类

    这里写图片描述
    在同一个包下有Test01.java和Test02.java,代码如下

    package com.codeliu;
    public class Test01 { 
        public void print() { 
            System.out.println("I'm Test01"); 
        }
    }
    
    package com.codeliu;
    public class Test02 { 
        public static void main(String[] args) { 
            Test01 t = new Test01(); t.print(); 
        }
    }
    

    因为Test02引用了Test01,所以我们得先编译Test01,再编译Test02。

    // 编译Test01.java,生成的.class文件在当前文件夹下,首先得进入到文件所在的文件夹下,然后进行编译
    javac Test01.java
    // 退出到包的最外层,然后编译Test02.java
    javac -cp . com/codeliu/Test02.java
    // 运行Test02.java
    java com.codeliu.Test02
    // 输出
    I'm Test01
    

    编译Test02的时候,我们使用-cp告诉编译器在当前路径下(.)去寻找Test01.class。

    当然,我们也可以指定.class生成的路径,使用-d即可。
    这里写图片描述


    6.一个包中的类调用另一个包中的类

    文件目录结构如下
    这里写图片描述
    在package1包下有类Test01.java,package2包下有Test02.java。代码分别如下

    package com.package1;
    public class Test01 { 
        public void print() { 
            System.out.println("I'm Test01"); 
        }
    }
    
    package com.package2;
    import com.package1.Test01;
    public class Test02 { 
        public static void main(String[] args) { 
            Test01 t = new Test01(); 
            t.print(); 
        }
    }
    

    还是同样,得先编译Test01.java。

    // 编译Test01.java,指定生成的路径是test文件夹下的bin文件夹下
    javac -d ./bin com/package1/*
    // 编译Test02.java,-cp告诉编译器去当前文件夹下的bin文件夹下找Test01.class,-d指定生成的路径
    javac -cp bin: -d ./bin com/package2/*
    // 运行Test02
    java -cp bin: com.package2.Test02
    // 输出
    I'm Test01
    

    这里写图片描述


    7.运行一个工程

    我们平时的项目肯定不可能是这么简单的,肯定有好多包和以及jar包,这样的情况下,我们使用shell脚本去编译它们。

    等下吃完饭举个栗子。


    温饱思淫欲,吃饱了我就不想写了。暂时先不写了,俺得学习其他的知识了。

    个人网站https://www.codeliu.com,欢迎各位志同道合的盆友!

    关注微信公众号:秃头哥编程(ID:xp_1311664842),领取编程大礼包。
    在这里插入图片描述

    展开全文
  • Linux运行Java文件

    千次阅读 2016-08-26 08:51:10
    Java程序的编译:javac Java程序的运行java

    1. 新建HelloWorld.java文件,里面代码如下:


    public class HelloWorld{
    public static void main(String[] args) {
       System.out.println("Hello World!");

    System.out.println("abc...");
    }
    }

     

    首先,在终端把目录切换到当前目录下;

    编译:javacHelloWorld.java

    编译结束后,当前目录中增加一个HelloWorld.class

    运行:java HelloWorld

    运行结束后,在终端显示出结果:

    Hello World!

    abc...

     

    2. 新建HelloWorld.java文件,里面代码如下:

     

    package test;
    public class HelloWorld{
    public static void main(String[] args) {
      System.out.println("Hello World!");

    System.out.println("abc...");
    }
    }

     

    首先,在终端把目录切换到当前目录下;

    编译:javac  HelloWorld.java  -d  ./

    编译结束后,当前目录中增加一个HelloWorld.class

    运行:java  test.HelloWorld

    运行结束后,在终端显示出结果:

    Hello World!

    abc...

     

    Summary:

    由于有的程序建立包,有的程序没有建立包,从而使得编译、运行的方式不同。

    展开全文
  • 直到最近某次运行别人写的bat文件时,出现“Could not find or load main class …“错误才开始了解如何通过命令行来编译运行Java文件。本文主要尝试说明导致这个错误的原因,以及如何解决。 注意:本文主要以...

    前言

    以前一直用Eclipse来运行Java程序,从未在命令行中编译运行过Java文件。直到最近某次运行别人写的bat文件时,出现“Could not find or load main class …“错误才开始了解如何通过命令行来编译运行Java文件。本文主要尝试说明导致这个错误的原因,以及如何解决。

    注意:本文主要以Window下的CMD为讨论对象,linux环境不一定有效。

    命令行中Java命令语法

    首先,我们需要了解一个正确Java命令的格式是什么,如下所示:

    java [ <option> ... ] <class-name> [<argument> ...]

    其中option是以”-“开头的命令选项,例如-Xmx100m来指定运行程序时的最大堆内存为100m;class-name是需要运行Java程序的绝对路径;argument是指传入Java程序的参数。

    以下面这条java命令为例:

    java com.joey.test.date.DateTest

    :查资料说有的JDK版本,java类名不是用“.”来分割,有可能用“/”来分割,那么此时命令如下:

    java com/joey/test/date/DateTest

    在命令行中输入上面这条命令后(前提是你已经用javac对DateTest.java文件进行了编译),JVM会按以下步骤进行:
    1. 需找com.joey.test.date.DateTest这个类编译的Java版本;
    2. 将这个类load进来;
    3. 检查这个类里面是否有main函数,以及是否有合适的修饰符;
    4. 调用main函数或指定的方法;

    导致报错的原因:

    所以当我们得到这个Could not find or load main class …报错时,说明这条命令不能找到指定的类,在上面的第一步便失败了。有两个原因为导致这条命令找不到指定的Java类:

    输入类名格式不正确

    1.只简单输入了类的名字

    java DateTest

    当一个类在包com.joey.test.date下时,我们应该输入完整的路径

    java com.joey.test.date.DateTest

    2.只输入了类文件的名字

    java DateTest.class

    此时应该输入类文件的相对路径

    java com/joey/test/date/DateTest.class

    3.类名没有区分大小写

    java com.joey.test.date.datetest

    4.类名拼写错误

    java com.joey.test.date.DataTest

    classpath不正确

    1.首先要确定你系统的环境变量CLASSPATH是否配置正确,我的配置如下:

    .;%JAVA_HOME%\jre\lib\rt.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

    2.检查命令行里的目录名称和JAR包名称是否正确
    3.确定在error消息里面类的路径是有效的

    在经过上述排查之后,我出现错误的原因是输入类的名称没有打全,并且不需要.java后缀。

    展开全文
  • linux编译运行单个java文件

    千次阅读 2019-12-24 12:10:25
    linux编译运行单个java文件 1、先创建java项目目录,名称project。 mkdir project 2、在项目中创建src和bin目录,src下用于存放 “.java” 文件,bin下存放 “ .class ” 文件。 cd project mkdir src bin 3...
  • 今天在别人的机器上将写好的java文件传上服务器,可是就是编译失败,觉得很奇怪,始终找不错什么错误,因为本身这个程序已经成功运行过。试了很多方法,最后在linux下用less的方式看见,发现了问题:在第一行的行首...
  • 错误信息: 确认java环境:java , javac , java -version命令均正常。... 由于我的java文件是直接从eclipse上复制的。 去掉第一行package xxx;再运行 附:运行命令: 编译:javac Test.java ...
  • LinuxJava 编译运行说明

    千次阅读 2013-04-07 17:54:53
    命令行环境下Java编译运行   1. java的运行机制的基本概念: 源文件 也就是我们熟知的.java文件。 类文件 .class文件是编译器由.java文件编译而成。众所周知,Java的跨平台性在于Java虚拟机(JVM)这一层对...
  • 要想编译运行java文件,很简单,只需要两个命令: (1) javac:作用:编译java文件;使用方法: javac Hello.java ,如果不出错的话,在与Hello.java 同一目录下会生成一个Hello.class文件,这个class文件是操作...
  • linux下使用javac java编译运行java工程

    千次阅读 2013-04-14 20:14:01
    前言:本文教你怎么用javac和java命令,以及如何利用脚本(shell或bat)方便处理,并用简单的实例展示这些用法。  IDE是把双刃剑,它可以什么都帮你做了,你只要敲几行代码,点几下鼠标,程序就跑起来了,用起来...
  • linux命令行中编译运行多个java文件
  • Linux终端编译并执行Java文件

    千次阅读 2019-03-14 11:47:08
    1、先创建java项目目录,名称MyTest。 mkdir MyTest 2、在项目中创建src和bin目录,src下用于存放 “.java” 文件,bin下存放 “ .class ” 文件。...4、在包中编写java文件,文件名为Hello.java。 vi src...
  • 其实自已一直比较排斥java语言,但发现好像真的有很多人在使用java,也发现很多java的项目,可能除了C语言外,java真的是最流行的语言吧。一般Mac系统下的C++出身的人都喜欢用python...从 Linux 终端编译运行 Eclipse
  • Linux终端编译java程序

    2018-01-08 13:06:29
    最近在看disni,一个基于java语言的RDMA库,给的代码需要在终端编译运行,以前写java程序都是用IDE写,对于如何在终端编译和运行java程序一窍不通啊。被disni虐了几天,对在终端编译java程序也有了认识,把之前记录...
  • Linux下java编译运行时引用第三方jar包的方法  1、方法 java -cp 【引用的jar包】【执行的java文件】 -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库、jar包之类的。 window上,jar包...
  • 一、前言 最近在学习java,不过一直是在windows的eclipse上做开发。服务器一般都是linux,...本文主要是讲讲如何通过脚本编译运行java程序的。 二、知识点 1、编译命令 javac [-d] [-o] [-verbose] [-clas...
  • java命令行编译运行多个java文件

    万次阅读 2016-06-11 23:02:30
    1. linux 2. 有两个java类,A.java和B.java,都在同一个目录下 二.源码: A.java package com.abc; public class A { public static void test() { System.out.println("A:test()"); } } B
  • linux2. 有两个java类,A.java和B.java,都在同一个目录下二.源码:A.javapackage com.abc; public class A { public static void test() { System.out.println("A:test()"); } }B.javaimport ...
  • linux编译和使用java文件

    千次阅读 2017-01-14 22:08:40
    首先在Linux下,配置环境变量,这里就不说了。
  • 如何使用Java编译运行C文件(一)

    千次阅读 2017-01-12 00:20:55
    利用java后台来编译运行C源文件,主要是为了开发一个在线编译网站的准备。 这里主要介绍如何编译运行C源文件,其实对于其他高级语言,道理都是一模一样的。
  • 在命令里编译和执行java文件,当应用程序需要需要依赖的jar包里面的class文件才能编译运行的时候,应该这样做:  1、 首先是编译过程,在命令行里面执行:  javac -classpath ClassPath Test.java //其中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 174,481
精华内容 69,792
关键字:

linux编译运行java文件

java 订阅
linux 订阅