小编dar*_*ckc的帖子

如何获取当前正在执行的jar文件所在的目录?

我正在各个位置运行一个jar文件,我正在试图弄清楚如何获取正在运行的jar文件的位置.

java jar

27
推荐指数
3
解决办法
6万
查看次数

解决这个'从实例方法写入静态字段'findbugs警告的最佳方法是什么?

我有一个类似于这个的类,并且findbugz抱怨'从实例方法写入静态字段'(initialize(),和killStaticfield()).我无法在ctor中设置静态字段.

  • 这个问题的最佳解决方案是什么?
  • 将staticField放入AtomicReference就足够了吗?

     public class Something
     {
      private static SomeClass staticField = null;
      private AnotherClass aClass;
      public Something()
      {
    
      }
    
      public void initialize()
      {
        //must be ctor'd in initialize
        aClass = new AnotherClass();
        staticField = new SomeClass( aClass );
      }
    
      public void killStaticField()
      {
       staticField = null;
      }
    
      public static void getStaticField()
      {
        return staticField;
      }
    }
    
    Run Code Online (Sandbox Code Playgroud)

java findbugs

17
推荐指数
2
解决办法
4万
查看次数

如何在jar中使用javax.net.ssl.keystore中的文件?

我正在尝试做类似的事情

URL clientks = com.messaging.SubscriptionManager.class.getResource( "client.ks" );
String path = clientks.toURI().getPath();
System.setProperty( "javax.net.ssl.keyStore", path);
Run Code Online (Sandbox Code Playgroud)

其中client.ks是存储在我正在运行的jar文件中的com/messaging中的文件.

读取javax.net.ssl.keyStore的东西需要一个到jar中的client.ks文件的路径.如果可能的话,我宁愿不提取文件并放入客户端的机器上.那么可以在jar中引用一个文件吗?

这不起作用,因为getPath()返回null.还有另一种方法吗?

java jar executable-jar

15
推荐指数
3
解决办法
2万
查看次数

是否更好地进行代码重复并使其非常简单/可读,或者没有重复(使用泛型)但更复杂?

总的来说,我经常遇到这个问题.我的一些同事喜欢非常简单易读的类,即使这意味着存在一些代码重复,而我尽我所能避免代码重复,即使它意味着制作更复杂的架构.什么是最佳做法?我专门用Java工作.

java generics code-duplication

8
推荐指数
4
解决办法
698
查看次数

ActiveMQ Web控制台不适用于嵌入式代理

我有一个完全通过java代码配置的嵌入式代理(没有可部署的xml文件).当我将浏览器指向Web控制台时,我只得到一个404,并且lsof显示没有任何内容正在监听8161.是否可以仅使用带有Java代码的Web控制台?我使用ActiveMQ附带的网络服务器很好,我对8161端口很好.

java activemq-classic

7
推荐指数
1
解决办法
4093
查看次数

未使用pexpect超时,仅使用默认值30

我正在尝试进行冗长的操作,但是使用超时参数的方法似乎并没有改变超时异常被触发之前的时间长度.这是我的代码:

child = pexpect.spawn('scp file user@:/temp', timeout=300)

whichMatched = child.expect(['(?i)Password','Are you sure you want to continue connecting (yes/no)?'], timeout=300)
Run Code Online (Sandbox Code Playgroud)

异常显示timeout = 30,这是默认值.

after: <class 'pexpect.TIMEOUT'>
match: None
match_index: None
exitstatus: None
flag_eof: False
pid: 6222
child_fd: 4
closed: False
timeout: 30
delimiter: <class 'pexpect.EOF'>
logfile: None
logfile_read: None
logfile_send: None
maxread: 2000
ignorecase: False
searchwindowsize: None
delaybeforesend: 0.05
delayafterclose: 0.1
delayafterterminate: 0.1
Run Code Online (Sandbox Code Playgroud)

python pexpect

7
推荐指数
2
解决办法
2万
查看次数

让python在运行csh脚本时输入密码

我正在编写一个在Solaris 10中执行csh脚本的python脚本.csh脚本会提示用户输入root密码(我知道),但我不知道如何让python脚本用密码回答提示.这可能吗?这是我用来执行csh脚本的内容:

import commands

commands.getoutput('server stop')
Run Code Online (Sandbox Code Playgroud)

python passwords scripting csh root

5
推荐指数
2
解决办法
1万
查看次数

是否可以使用subprocess.Popen与子子进程通信?

我正在尝试编写一个包装我们软件的python脚本.这个脚本需要构建我们的产品并打包它.目前我们有其他脚本分别执行每个部分,包括csh和perl脚本.一个这样的脚本运行如下:

sudo mod args
Run Code Online (Sandbox Code Playgroud)

其中mod是perl脚本; 所以在python我会这样做

proc = Popen(['sudo', 'mod', '-p', '-c', 'noresource', '-u', 'dtt', '-Q'], stderr=PIPE, stdout=PIPE, stdin=PIPE)
Run Code Online (Sandbox Code Playgroud)

问题是这个mod脚本需要回答几个问题.为此,我认为是传统的

(stdout, stderr) = proc.communicate(input='y')
Run Code Online (Sandbox Code Playgroud)

会工作.我不认为它有效,因为Popen控制的过程是sudo,而不是提出问题的mod脚本.有没有办法与mod脚本进行通信并仍然通过sudo运行它?

python subprocess

5
推荐指数
1
解决办法
2531
查看次数

通过svnsync获取存储库的只读副本有什么意义?

我一直在阅读svnsync来创建我们的存储库的只读副本,但我真的不明白拥有存储库的只读副本是什么意思.如果主服务器出于某种原因出现故障,那么只读副本是否可以读/写,以便人们可以承诺呢?如果没有,那么只读副本的重点是什么?

svn svnsync

5
推荐指数
1
解决办法
561
查看次数

为什么在eclipse中编译相同的代码时,类文件的大小不同,然后通过ant使用eclipse编译器?

我正在使用ant构建一个自动构建环境,使用eclipse中使用的相同eclipse编译器构建一个新签出的源代码树.问题是,一些生成的类文件的大小不同于在eclipse中编译生成的类文件.为什么是这样?这没关系,还可以预料到吗?按照规定,我告诉Ant使用eclipse编译器,如:

<target description="compile project with Eclipse compiler" name="build-eclipse-compiler">
        <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
        <antcall target="build"/>
</target>
Run Code Online (Sandbox Code Playgroud)

java eclipse

5
推荐指数
1
解决办法
4330
查看次数

OnStart()未被调用.服务进程无法连接到服务控制器.手动工作,并在其他机器上工作

我有一个作为服务运行的ac#应用程序并自动启动.如果手动启动此服务,该服务就会正常启动,但在某个特定Windows Server 2008 R2上的事件查看器中,此错误(服务进程无法连接到服务控制器)失败.我在第二台Windows Server 2008 R2 VM上试用了它,它自动启动很好.具体是什么导致了这个错误

这个服务没有依赖关系,没有正确的权限,只是读取一个小的配置文件,并启动一个线程所以它不会花费超过30秒,因为这篇文章暗示http://social.msdn.microsoft.com/论坛/ EN-US/dc177c75-b41b-4ff7-ae67-9ad60919e507 /我-窗口服务是-不启动-当-的系统靴式偶数虽然-IT-是集-TO-自动?论坛= netfxbcl.

我有一个调试语句作为OnStart()的第一行,它永远不会输出到日志文件(我使用的是Log4Net).我调用ServiceBase.Run()之前在Main()中有一个日志语句,它输出到我的日志文件,所以我知道日志记录正在运行.

c# windows-services

2
推荐指数
1
解决办法
7201
查看次数