Articles of Java的

configurationjenkins不同的user.home

我正在运行Jenkins版本1.527(我知道有一个更新的版本,但它是坏的,我不能使用1.528的用户界面,并没有得到升级到1.529的机会) 我试图通过在我的启动脚本中这样做更改Jenkins中的user.home系统属性: export HOME=/new-home-dir 但是,jenkins中的环境variables正确显示,user.dir显示为导出的variables,但user.home不会更改。 我不能使用默认function的原因是因为我在locking用户的主目录的企业,我的用户可以在那里添加或修改文件。 任何帮助改变user.home将不胜感激。 仅供参考 – 我在RHEL v6.2上运行Jenkins 尝试解决scheme 将-Duser.home = / newDir添加到JAVA_OPTS或JAVA_ARGS,都不起作用 将-Duser.home = / newDir添加到构build作业中的MAVEN_OPTS。

为什么我能够直接从bash执行JAR?

我是一个长期的Java人,并且知道在JAR中的MANIFEST.MF文件中引用的主类运行JAR的方法很简单: java -jar theJar.jar 我正在使用它来启动Fabric3服务器(包含在标准发行版的bin/server.jar中)。 我注意到,当我从分发tarball解压缩它,它被标记为可执行文件。 一时兴起,我试了一下 ./server.jar 从我的bash命令行(Ubuntu 10.10中的bash版本4.1.5),并且看,服务器启动,就好像我input了正常的java -jar …命令。 JAR的结构像一个普通的JAR; 我做了一个head ,没有#! 命令在前几个字节,所以bash不应该神奇地知道启动一个Java虚拟机,对吧? 或者,这个版本的bash增加了正确启动JAR的能力吗? 询问的头脑想知道…

用于在基于UNIX的系统中存储我的Java库和应用程序的常规位置

我通常将从Web上下载的Java应用程序和JAR文件存储在我的计算机(OS X机器)的〜/ Java文件夹中。 自从我是Windows用户以来,我一直在做这个。 不过,我认为在基于UNIX的系统中,用户本地应用程序通常存储在另一个目录中。 我感觉这个目录应该是/usr/local/ , /usr/local/USERNAME , /opt/local或/opt/local/USERNAME但我不确定。 任何想法我可以用这个目录? 请注意,我正在讨论从Web下载的归档文件,在本地解压缩并使用,而不是具有安装脚本或MacPorts的程序等。

一个经典的StackOverflow:Java Swing

问候大家! 我在Windows下使用Java Swing编程GUI应用程序。 在Windows下一切正常。 现在我正在Linux下尝试它(使用发行版Linux Mint 7)。 我得到和讨厌的StackOverflowException,当我调用帧的处理方法 ! 有问题的框架是JDialog组件。 这是一些输出:编辑,完整的输出 run: Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:261) at java.beans.Statement.invoke(Statement.java:231) at java.beans.Expression.getValue(Expression.java:115) at java.beans.DefaultPersistenceDelegate.doProperty(DefaultPersistenceDelegate.java:227) at java.beans.DefaultPersistenceDelegate.initBean(DefaultPersistenceDelegate.java:264) at java.beans.DefaultPersistenceDelegate.initialize(DefaultPersistenceDelegate.java:408) at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:116) at java.beans.Encoder.writeObject(Encoder.java:74) at java.beans.XMLEncoder.writeObject(XMLEncoder.java:274) at java.beans.Encoder.writeExpression(Encoder.java:304) at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:389) at java.beans.DefaultPersistenceDelegate.doProperty(DefaultPersistenceDelegate.java:229) at java.beans.DefaultPersistenceDelegate.initBean(DefaultPersistenceDelegate.java:264) at java.beans.DefaultPersistenceDelegate.initialize(DefaultPersistenceDelegate.java:408) at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:116) at […]

Tomcat进程在交换空间不足后被Linux内核杀死; 不要得到任何JVM OutOfMemory错误

我正在对tomcat服务器进行负载testing。 服务器有10G物理内存和2G交换空间。 堆大小(xms和xmx)之前被设置为3G,并且服务器工作正常。 由于我仍然看到很多空闲的内存,性能不佳,我将堆大小增加到7G,然后再次进行负载testing。 这次我观察到物理内存很快就被吃掉了,系统开始消耗交换空间。 后来,tomcat在用完swap之后崩溃了。 我在启动tomcat时包含了-XX:+HeapDumpOnOutOfMemoryError ,但是我没有得到任何堆转储。 当我检查/var/log/messages ,我看到kernel: Out of memory: Kill process 2259 (java) score 634 or sacrifice child 。 为了提供更多的信息,这里是我从Linux top看到的命令,当堆大小设置为3G和7G xms&xmx = 3G(工作正常): 在启动tomcat之前: Mem: 10129972k total, 1135388k used, 8994584k free, 19832k buffers Swap: 2097144k total, 0k used, 2097144k free, 56008k cached 启动tomcat之后: Mem: 10129972k total, 3468208k used, 6661764k free, […]

如何编写一个Java守护进程

这将是一个networking应用程序,将总是(或者一如我所能pipe理的那样)在一个给定的端口上进行监听。 我对Java相当陌生,对于非Web服务器端编程来说是非常新的,所以我想从我的假设和初步计划中得到社区的反馈。 我已经阅读了关于jsvc( http://commons.apache.org/daemon/jsvc.html ),目前正在假设这是在linux中编写一个java程序守护进程的“最佳”方式运行centOS)。 可以configurationnagios来监视我的守护进程是否正在运行,并提醒我或系统pipe理员,当它不是? (我想是的,但我不是一个非常有才华的系统pipe理员types) 这将是一个SMPP客户端应用程序(或ESME应用程序,我猜)这就是为什么我selectJava,因为它似乎是一个非常成熟的SMPP平台。 但是,我知道用C / C ++编写守护进程更“传统”。 用现代Java,执行相当简单的任务,我是否可能遇到任何主要的缺点? pipe理新版本部署的最佳方式是什么? 只要停止守护进程,尽快更换二进制文件,然后重新启动? 任何其他input将不胜感激。

如何通过Windows中的端口findPID,并杀死使用Java发现的任务

我需要通过进程端口在java代码中杀死进程。 我可以在cmd中手动执行: C:\>netstat -a -n -o | findstr :6543 TCP 0.0.0.0:6543 0.0.0.0:0 LISTENING 1145 TCP [::]:6543 [::]:0 LISTENING 1145 C:\>taskkill /F /PID 1145 在Java中,我可以执行cmd命令,如: ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", "netstat -a -n -o | findstr :6543"); 但我不知道如何得到PID作为netstat的输出,并将其传输到“taskkill”命令。 有人可以build议我吗?

USB编程与Windows

我想写一个程序来处理我的USB端口(Windows)。我不知道该怎么说,但这是它应该如何工作。该程序应该运行(这应该是第一件事情[病毒警卫之前询问是否这个闪存驱动器应该扫描])当一个闪存驱动器或外部硬盘驱动器插入到一个USB端口。 我不是在谈论汽车运行,我该怎么做。

java中的endTime有些问题

我想添加一个StartTime和EndTime到我的Java GUI,因为将有多个batch file正在运行,这将closures一个cmd,启动另一个cmd,closures此cmd并启动另一个直到所有batch file都被执行(batch file将运行在用户的select)。 当用户点击“开始”选项时,batch file将运行。 然后开始时间已经被logging下来,但是直到所有cmd都closures时才会显示(这是我实现后发现的)。 当进程结束时,显示的开始时间是正确的。 但显示的EndTime和StartTime是一样的,这是错误的。 我该如何解决这个问题? 这是我的编码: // Get system time Date date = new Date(); DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); // startTime GUI texts JLabel startTimeLabel = new JLabel("Start Time: "); startTimeLabel.setFont(new Font("Arial", Font.BOLD, 12)); startTimeLabel.setBounds(100, 245, 180, 53); contentPane.add(startTimeLabel); JStartTimeTextField = new JTextField(); JStartTimeTextField.setBounds(170,265,200,15); contentPane.add(JStartTimeTextField); JStartTimeTextField.setColumns(10); // […]

Apache Thrift Python-Java'拒绝连接'

我最近尝试使用Thrift将Python连接到Java。 我已经在Python(PyPy)上编写了一个服务器。 我也写了一个参考客户端的工作。 然后我写了一个Java客户端,它只产生一个“连接被拒绝”exception。 这有什么问题? (最近我还发现一个封闭的问题,具有这个问题https://issues.apache.org/jira/browse/THRIFT-1888 ) PS。 使用Thrift 0.9版本,PyPy 2.0 beta 2,Java 1.7.0_11 test.thrift namespace java com.test namespace python test service TestPing { void ping() } Python服务器代码 class TestPingHandler: def ping(self): pass handler = TestPingHandler() processor = TestPing.Processor(handler) transport = TSocket.TServerSocket(port=9091) tfactory = TTransport.TBufferedTransportFactory() pfactory = TBinaryProtocol.TBinaryProtocolFactory() server = TServer.TThreadedServer(processor, transport, tfactory, pfactory) print […]