小编swe*_*mon的帖子

在使用替代方案的Linux系统上,JAVA_HOME的正确路径是什么?

确定正确的路径JAVA_HOMEUbuntu系统上有点复杂,因为它使用了替代方案.在我的机器上,这是替代方案在到达实际的java或javac之前至少创建两个间接层的方式.

usr/bin/javac -> /etc/alternatives/

/etc/alternatives/java -> /usr/lib/jvm/jdk1.7/bin/javac
Run Code Online (Sandbox Code Playgroud)

如果我设置JAVA_HOME/usr/lib/jvm/jdk1.7,那么我的系统java可能会与指向的java不一致JAVA_HOME,如果我更新替代使用另一个java.

我的问题是,JAVA_HOME在使用替代品的系统上,正确的价值是什么.我倾向于认为JAVA_HOME应该这样做/usr

这样TOMCAT或使用它的任何其他软件都会将"bin"附加到JAVA_HOME并找到它需要的所有可执行文件.

这是JAVA_HOME使用替代品的系统的正确值.大多数软件JAVA_HOME仅用于查找可执行文件,还是使用该值来查找与JDK捆绑在一起的其他工件(例如安全策略文件等)?如果是前者的话,我觉得我们可以使用/usrJAVA_HOME,但如果是后者,那么我想使用的唯一方法JAVA_HOME正确是通过牺牲的替代功能.

java java-home

9
推荐指数
1
解决办法
4704
查看次数

我可以在同一方法上同时使用@ Post和@Get

我想在同样的方法上同时使用@ Post和@Get

@GET
@POST
@Path("{mode}")
public void paymentFinish(@PathParam("mode") String mode, String s) {
    logger.debug("Enter PayStatus POST");
    logger.debug(mode);
}
Run Code Online (Sandbox Code Playgroud)

即使我这样写,我也有错误.我想要的是无论是获取还是发布到同一个方法,相同的方法都有效.可能吗?现在我将两个方法分开,一个用于get,一个用于post.

jersey tomcat7

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

转换e.printStackTrace()以改为使用log4j

我对log4j很新.我不想在我的日志文件中显示异常堆栈跟踪,例如

java.lang.IllegalArgumentException: nodeRef is a mandatory parameter
at org.alfresco.util.ParameterCheck.mandatory(ParameterCheck.java:42)
Run Code Online (Sandbox Code Playgroud)

这些异常通过使用e.printStackTrace()类似的方式直接写入控制台

try {
    // something
} catch(Exception e) {
    StringWriter stack = new StringWriter();
    e.printStackTrace(new PrintWriter(stack));
    logger.debug("Caught exception; decorating with appropriate status template : " + stack.toString());
}
Run Code Online (Sandbox Code Playgroud)

我现在正在定制一个开源项目,而不是自己编写我的所有程序.所以不可能删除e.printStackTrace();所有的java文件.

据我所知,log4j用logger 打印的日志可以通过使用log4j错误级别来配置,例如info,debug,warn.But如何直接写入控制台或文件?

如何配置log4j不打印只有异常堆栈跟踪但显示其他信息?有办法解决吗?

java log4j

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

使用maven编译时无法找到Javac编译器 - 无法在以下位置找到Javac编译器:

我在使用maven编译时出现编译错误.

[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] Unable to locate the Javac Compiler in:
  C:\Program Files\Java\jre1.6.0_05\..\lib\tools.jar
Run Code Online (Sandbox Code Playgroud)

所以我设置JAVA_HOME环境变量但没有优势.错误似乎maven在jre路径中搜索java编译器,而不是JAVA_HOME.

  • JAVA_HOMEC:\Program Files\Java\jdk1.6.0_05.

  • 已安装的JRE是C:\Program Files\Java\jre1.6.0_05.

  • 我的PATH变量是:

C:\Program Files\PC Connectivity Solution\;D:\alfrescoplatform\ImageMagick;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\Wbem;C:\Program Files\ImageMagick-6.7.3-Q16;C:\Program Files\Java\jdk1.6.0_05\bin

这是我的详细日志

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building SpringMVC Maven Webapp 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ SpringMVC ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent! …
Run Code Online (Sandbox Code Playgroud)

eclipse compiler-errors maven

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

ByteArrayOutputStream vs FileOutputStream从内存使用和性能的角度来看

我想要做的是从Web服务器下载文件.当我跟踪代码时,两个程序员以不同的方式使用ByteArrayOutputStream和FileOutputStream来下载同一场景中的文件.这些是

  • 案例1:用于ByteArrayOutputStream创建文件并下载.

  • 案例2:用于FileOutputStream在Web服务器下临时创建文件并下载然后删除该文件.

PS:案例2文件大于案例1文件.

我可以用ByteArrayOutputStream这两种情况吗?FileOutputStream在第二种情况下是否有意使用?我想知道的是从性能和内存的角度来看.提前致谢.

java file-io bytearray

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

如何使用Alfresco搜索指定文件夹中的文档

我想搜索指定文件夹中的文档.我的意思是,如下面的情况,搜索mainfolder1的文件.我怎样才能做到这一点??有lucene可能?我知道lucene可以指定商店.我不知道文件夹.

- >公司回家

----> mainfolder1

-------> DOC1

-------> DOC2

----> mainfolder2

alfresco

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

流量控制除外

当我运行以下代码时,有两个结果.

 package scjp;

    public class ExceptionTest {

        public static void main(String[] args) {
            ExceptionTest test = new ExceptionTest();
            test.method1();
        }

        public void method1() {
            try {
                System.out.println("Try Block");

                if (!true) {
                    return;
                } else {
                    throw new RuntimeException();
                }
            }finally {
                System.out.println("Finally Block");
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

一个结果是

Try Block
Exception in thread "main" java.lang.RuntimeException
    at scjp.ExceptionTest.method1(ExceptionTest.java:17)
    at scjp.ExceptionTest.main(ExceptionTest.java:7)
Finally Block
Run Code Online (Sandbox Code Playgroud)

和另外一个,

Try Block
Finally Block
Exception in thread "main" java.lang.RuntimeException
    at scjp.ExceptionTest.method1(ExceptionTest.java:17)
    at scjp.ExceptionTest.main(ExceptionTest.java:7)
Run Code Online (Sandbox Code Playgroud)

每次我运行上面的代码时,答案都在改变.在我的理解中,它应该始终是相同的结果.你能帮我点什么吗?

java runtime exception

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

Alfresco :覆盖 ftp 中的文件时增加文档版本

我想在覆盖 ftp 中的文件时增加次要文档版本。当我跟踪代码时,ContentDiskDriver2.truncateFile()适用于覆盖文件。在这个函数中我用它versionService来增加版本。以下代码编写在 truncateFile() try {

    NodeRef nodeRef = getNodeForPath(tree, DriverContent.FILE_OPEN_PARAMS.getPath());
    System.out.println("Node Ref: " + nodeRef);

    // Increase minor version to file.
    Map<String, Serializable> versionProperties = new HashMap<String, Serializable>(2, 1.0f);
    versionProperties.put(Version.PROP_DESCRIPTION, "");
    versionProperties.put(VersionModel.PROP_VERSION_TYPE, VersionType.MINOR);

    VersionService versionService = (VersionService) applicationContext.getBean("versionService");
    versionService.createVersion(nodeRef, versionProperties);
} catch (FileNotFoundException e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

但不幸的是我得到了这个错误。

2013-01-02 14:12:31,609  ERROR [org.alfresco.fileserver] [Sess_FTP3_192.168.1.166] Error from JLAN
 org.alfresco.error.AlfrescoRuntimeException: 00020073 Transaction must be active and synchronization is required: Thread[Sess_FTP3_192.168.1.166,5,FTPSessions]
    at org.alfresco.repo.transaction.AlfrescoTransactionSupport.registerSynchronizations(AlfrescoTransactionSupport.java:467)
    at org.alfresco.repo.transaction.AlfrescoTransactionSupport.getSynchronization(AlfrescoTransactionSupport.java:451)
    at org.alfresco.repo.transaction.AlfrescoTransactionSupport.getResource(AlfrescoTransactionSupport.java:244)
    at org.alfresco.repo.transaction.TransactionalResourceHelper.incrementCount(TransactionalResourceHelper.java:71) …
Run Code Online (Sandbox Code Playgroud)

ftp alfresco

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