Articles of Java的

构build可运行的jar时Ant会卡住

又是我。 我一直在尝试使用ant脚本将Java项目创build为可运行的jar。 这是我的build.xml <project name="simple-app" basedir="." default="main"> <property name="src.dir" value="src" /> <property name="build.dir" value="build" /> <property name="classes.dir" value="${build.dir}/classes" /> <property name="jar.dir" value="${build.dir}/jar" /> <property name="lib.dir" value="lib" /> <property name="main-class" value="app.App" /> <path id="classpath"> <fileset dir="${lib.dir}"> <include name="*.jar" /> </fileset> <dirset dir="${build.dir}"> <include name="classes"/> </dirset> </path> <target name="clean"> <delete dir="${build.dir}" /> </target> <target name="compile"> <mkdir dir="${classes.dir}"/> […]

在linux脚本中运行远程java服务器

我有一个名为Provider的Java实现的服务器,并启动它的Linux脚本。 #!/bin/bash echo "Provider" $JAVA_HOME/bin/java -cp /tmp Provider& $JAVA_HOME/bin/java -version rm /tmp/pid echo "$!"> /tmp/pid echo "Provider-finish" exit 0 当我想在不同的机器(机器2)上执行以下脚本时, root@machine1:/tmp# ssh machine2/tmp/runScript.sh Provider java version "1.6.0_29" Java(TM) SE Runtime Environment (build 1.6.0_29-b11) Java HotSpot(TM) Client VM (build 20.4-b02, mixed mode, sharing) Provider-finish Waiting for connection 问题是,在脚本之上运行之后,它不会返回控制台,但在Provider启动的时候会挂起。 我已经分析了类似的概念,如Glassfish域的开始。 通过执行 ssh machine2 asadmin start-domain 它返回控制台没有任何问题,所以我可以得到执行状态“$?”

在java中执行linux命令并将输出存储在variables中

我想在我的Java程序中的媒体服务器上获得完全免费的E1频道。 我用下面的代码来得到我想要的结果: String command = "asterisk -rx " + '"' + "ss7 linestat " + '"' + " |grep " + '"' + "Idle" + '"' + " |wc -l"; Process p = Runtime.getRuntime().exec(command); p.waitFor(); BufferedReader buf = new BufferedReader(new InputStreamReader(p.getInputStream())); String line = ""; while ((line = buf.readLine()) != null) { freeE1s += line […]

在Linux / Java / Scala中枚举附加的DVD驱动器

在我的Scala(在Java之上运行)应用程序我想获得包含DVD媒体的所有驱动器的列表,例如: / dev / scd0星际迷航DS9 DVD1 / dev / scd0 4400 DVD1 不知道是否有可能获得光盘的名称,但path对我来说是重要的。 我更喜欢纯Java / Scala解决scheme(使用file.io的东西)。 如果这是不可能的,访问正确的Linux文件也很好(如/ proc / something)。 提前致谢!

$ JAVA_HOMEpath在login时在〜/ bash_profile中找不到正确的path

login到我的CentOS 7虚拟机后,我的$ JAVA_HOME总是被设置为: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre ,这是不正确的。 我的〜/ .bash_profile读取: # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.144-0.b01.el7_4.x86_64/jre export JAVA_HOME PYCHARM_HOME=/opt/pycharm-community-2017.2.3/ export PYCHARM_HOME ECLIPSE_HOME=/opt/eclipse export ECLIPSE_HOME export SPARK_HOME=/opt/spark PATH=$PATH:$HOME/.local/bin:$HOME/bin:$JAVA_HOME/bin:$SPARK_HOME/bin:$PYCHARM_HOME/bin:$ECLIPSE_HOME export PATH Sourcing .bash_profile每当我打开一个新的terminal似乎纠正这个问题,但为什么我的$ JAVA_HOMEpath在启动时默认为旧版本,而不是设置为.bash_profile中指定的目录?

有没有一个Maven插件来获取转速

作为我目前的程序的一部分,我必须做一个Linux包提取,然后是一个Maven构build。 有没有一个Maven插件来获取Linux软件包( rpm -i xxx或apt-get install xxx )? maven-exec-plugin启用了这个function。 但有没有一个更专门的插件,将数据封装在上面? 注意: – maven-rpm-plugin和maven-apt-plugin似乎允许你创buildrpm包,而不是去获取它们

在本地库中查找暴露的方法来访问JNA / JNI?

嗨:我想用JNA来访问本地库中的一些函数。 1)我如何反思本机库文件(例如.so文件),看看有什么方法可用? 2)在.so文件中可访问的方法和为编译这些文件而构build的C代码之间是否存在一对一映射? 3)JNA是否可以在所有只有java / native互操作涉及从Java调用本机库的情况下工作(我认为这是JNA的经典用例),还是有时需要JNI?

在java程序的不同目录中运行Bash命令

程序说明: 我正在编写一个Java程序,其中当前目录是/ home / user / Desktop。 我想在“location / home / user / project /”中运行一个bash命令“du -s”来查找该文件夹的大小,以便我可以在我的项目中使用该文件夹的大小。 我不能发布整个代码,因为它有一些敏感的数据。 我只是张贴需要的代码。 这是我所做的: import java.io.*; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.File; public class Exec_in_cur_dir { public static void main(String[] args) { try { StringBuffer output = new StringBuffer(); String Command ="cd /home/user/project"; //Bash Command // […]

调用DestroyJavaVM后重新调用JNI_CreateJavaVM返回-1

调用DestroyJavaVM后,我试图调用JNI_CreateJavaVM。 我按照以下顺序调用它们:InitJVM – > ReleaseJVM – > InitJVM 初始化时,JNI_CreateJavaVM返回0,并正常工作。 第二次在销毁后初始化时,JNI_CreateJavaVM返回-1而不起作用。 会有什么问题? 这是一个创buildJVM的函数: #elif __linux HRESULT PWNJava::InitJVM(void) { if(m_bRunning) { Log("Error : JVM is already Running! (PWNJava::Init)"); return PWN_FAIL; } const int kNumOptions = 3; JavaVMOption options[kNumOptions] = { { const_cast<char*> ("-Xmx128m"), NULL}, { const_cast<char*> ("-verbose:gc"), NULL}, { const_cast<char*> ("-Djava.class.path=../../Class"), NULL} }; JavaVMInitArgs vm_args; vm_args.version = […]

parsing游标输出java

我怎样才能parsing从linux游标程序的输出,如在Java顶部? 我希望有人给一个例子或链接一个。 现在我得到顶级的运行像一个过程对象。 顺便说一句,这只是一个这样的程序的例子。 String[] args={"top"}; Process process = new ProcessBuilder(args).start();