小编Tho*_*sen的帖子

什么是最高效的基于Java的流式XSLT处理器?

我有一个非常大的XML文件,我需要将其转换为另一个XML文件,我想用XSLT来做这件事.我对内存优化更感兴趣,而不是速度优化(尽管速度也会很好!).

您会为此任务推荐哪种基于Java的XSLT处理器?

你会推荐其他任何方式(非XSLT?,非Java?),如果是这样,为什么?

问题中的XML文件非常大,但不是很深 - 有数百万行(元素),但只有大约3个级别.

java xslt processor

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

如何掌握Java?

我在Java学习了2门课程:
1-使用Java编程简介.
2-使用Java的数据结构.

在这两门课程中,我们使用了Java SE.

我喜欢它,我真的想成为一名优秀的java程序员.

但是,我发现我应该知道Java软件开发中涉及的许多技术:
Spring,Struts,JSP,JSF,GWT,Hibernate,apache tomcat以及其他更多技术.

我希望它变成像.NET这样简单的过程你选择一种语言,一个框架和IDE就是它.

有人可以指导我找到掌握Java的最佳途径或途径吗?
您如何看待这两门课程:
http://www.oreillyschool.com/certificates/java-programming.php

高级Java证书系列(来自同一所学校,将于9月开放).

java

27
推荐指数
4
解决办法
5万
查看次数

Java程序应该监听什么才能成为一个优秀的Linux服务?

在Linux中,您可以提供以下命令:

service <someService> start
service <someService> stop
Run Code Online (Sandbox Code Playgroud)

而不是杀死过程kill -9 <someService>.正如我在之前的一个问题中所了解到的,这是发送进程a SIGTERM(前者)和SIGKILL后者(后者)之间的区别.

那么如何将普通JAR或WAR作为可以使用这些命令启动和停止的服务/守护进程"注册"(和编码)?我认为Java必须有一些API来处理SIGTERMs?

提前致谢!

java linux service daemon

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

仅使用JRE生成javadoc

我希望能够为我的maven项目生成javadoc,即使在JRE而不是JDK下运行时,也可以找到maven调用的javadoc命令.换句话说,除了JRE中的内容以及Maven可以下载并用作工件之外,不依赖于任何东西.

有没有简单的方法可以使用Maven生成javadocs而无需使用仅在JDK中找到的代码?


编辑:显然,理解我为什么要这样做很重要.我们是一个规模较大的组织中的一个小团队,每年都会发布我们的产品套件,然后我们的客户在方便的时候进行升级(由于部署规模庞大而且价格昂贵且时间要求很高,因此通常会跳过一个或多个版本)我们的生活是能够在有关客户正在运行的任何版本的现有部署的短时间内提供错误修正和新功能.作为一个例子,我最近为我五年前写的一个组件做了一个错误修正,从那以后基本上没有被触及.

因此,我们的构建过程的长期稳定性对我们来说非常重要,并且能够在新版本的Java可用时使用它们.我们已将完整的构建环境迁移到Maven - 它在Maven Central购买永久冻结的工件 - 现在我们开始考虑我们还需要做什么.

随着最近宣布未来版本的javac将不支持旧目标(http://openjdk.java.net/jeps/182),我们得出结论,我们的长期目标是最小化我们对底层Java环境的依赖性,最好是只是普通的JRE.我们正在使用可从Maven Central获得的Eclipse编译器从JDK中完全替换javac,现在我们来看看javadoc生成.

java openjdk javadoc

27
推荐指数
2
解决办法
2890
查看次数

如何重现静默删除的TCP/IP连接?

我有一种情况,即Java程序与服务器建立长时间运行的TCP/IP连接,并且所述连接的功能与文档完全一致,除了我控制之外的环境中的一件事.

每个星期六服务器都重新启动,但由于某种原因,这不能正确地传达给我的客户端,因此连接只是挂起等待永远和永远的响应.这与过时的JDBC连接看起来完全相同,其中服务器和客户端之间的某些路由器发现连接处于空闲状态并且在没有通知的情况下将其丢弃.

我需要能够重现这个场景才能创建一个正确的修复程序.

因此,我需要知道是否有一种很好的方法来模拟路由器静默地丢弃我控制下的连接?

我可以在我的开发环境和服务器之间放置一个Linux机器或Mac.我可以在虚拟机(vmware播放器)中运行JVM,如果我可以在那里进行删除.

建议非常欢迎.


编辑2012-12-18:对我有用的解决方案是在本地使用基于Java的SOCKS5代理,可以随意使用Ctrl-Z暂停,并告诉我的应用程序完成它.

java linux networking tcp

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

Maven:javac:源版本1.6需要目标版本1.6

注意:这似乎是"javac"程序中的限制.

我有需要为Java 5 JVM构建的Java 6代码.我之前使用javac ant目标(使用JDK编译器和ecj)的工作使我相信它只是设置javac的源和目标.因此这个pom.xml片段:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
        <source>1.6</source>
        <target>1.5</target>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

它可以在Eclipse 3.7中使用Maven支持按预期工作.不幸的是,直接从命令行运行Maven给了我

javac: source release 1.6 requires target release 1.6
Run Code Online (Sandbox Code Playgroud)

与生成的相同javac -source 1.6 -target 1.5.为了澄清,这是Ubuntu的官方OpenJDK 6

x@JENKINS:~$ javac -version
javac 1.6.0_20
x@JENKINS:~$ javac -source 1.6 -target 1.5
javac: source release 1.6 requires target release 1.6
x@JENKINS:~$
Run Code Online (Sandbox Code Playgroud)

官方Oracle Java 7 JDK for Windows显示了相同的行为.

注意:我不想构建Java 5库或任何东西.只是活动的javac生成Java 5 兼容的字节码.

如何在仍然与Eclipse Maven插件兼容的同时获得我想要的内容?

(编辑:除了@Override我还想在Java 6中使用JAX-WS库进行编译时使用,但仍然生成Java 5字节代码 - 我可以在部署时故意在Web容器中添加JAX-WS库到Java 5安装)


编辑:事实证明maven-compiler-plugin可以被告知使用另一个编译器,Eclipse编译器可以这样做:

        <plugin>
            <!-- Using the eclipse compiler allows …
Run Code Online (Sandbox Code Playgroud)

java javac maven

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

杀手设施或场景会使另一个JVM成为比Sun JVM更好的选择吗?

对于Java SE,有几个JVM可用于在x86上的生产中运行:

加上一些在服务器上运行的自定义产品:

其他平台:

  • Sun Solaris JVM - 比x86更好的可伸缩性?
  • (编辑)用于Java的GNU编译器 - http://gcc.gnu.org/java/ - 可以在多个平台上编译为本机代码.

Sun JVM与jvisualvm程序具有明显的优势,该程序允许运行时检查运行代码.是否有任何其他JVM的技术优势可能使其成为开发和/或生产的更好选择?

换句话说,是否有一个杀手级设施或场景可以在另一个JVM上投入时间/精力/金钱?

(如果它们是一个不错的选择,还请建议其他JVM).

java jvm

23
推荐指数
4
解决办法
1855
查看次数

如何只用分支名称来获取git树的鸟瞰图,而不是单独提交?

我喜欢混蛋给我展示提交各种分支机构如何流动的可视化树的能力,但有很多的提交您可在细节淹没.

我想知道我怎么可以只得到分支结构的基本轮廓没有所有的个人承诺,但与分支名称放在正确的位置呢.

很像,gitk --all .但后来缩小了一点.

建议?


编辑:2013-03-16 - 我还没有找到一个很好的解决方案.然而,我发现Git Extensions中的历史视图由于某种原因提供了比Eclipse中的历史视图更好的信息.

git visualization

23
推荐指数
3
解决办法
6073
查看次数

通过快速网络连接克隆git存储库的最快方法是什么?

我有一个相对较大的git存储库的情况,位于我的本地网络上的老人,慢主机上,这需要很长时间才能进行初始克隆.

ravn@bamboo:~/git$ git clone gitosis@gitbox:git00
Initialized empty Git repository in /home/ravn/git/git00/.git/
remote: Counting objects: 89973, done.
remote: Compressing objects: 100% (26745/26745), done.
remote: Total 89973 (delta 50970), reused 85013 (delta 47798)
Receiving objects: 100% (89973/89973), 349.86 MiB | 2.25 MiB/s, done.
Resolving deltas: 100% (50970/50970), done.
Checking out files: 100% (11722/11722), done.
ravn@bamboo:~/git$
Run Code Online (Sandbox Code Playgroud)

gitosis中没有git特定的配置变化.

有没有办法加快接收位到网络的能力?


编辑:我需要新的存储库与上游存储库正确连接.根据我的理解,这需要git来进行克隆,因此git之外的原始位复制将不起作用.

git performance vmware git-clone

23
推荐指数
4
解决办法
3万
查看次数

Weld/CDI最好的调试技巧是什么?

Java EE 6的一个优点是新的依赖注入框架 - 带有Weld参考实现的CDI - 它促使我们以一种与实现无关的方式开始内部迁移到JSR-330,其明确的目标是能够拥有核心jar被冻结,然后能够添加额外的罐子,提供新的模块替换核心jar中的功能.

我现在正在与Weld一起完成上述工作,坦率地说,封面背后有太多的魔力.无论是工作还是不工作,默认情况下它不会提供很多帮助,因此您可以调查错误并修复它.

我希望有切换开关可以轻松实现以下功能:

  • 扫描了哪些类路径条目以及在哪里?结果是什么?
  • 什么豆类可供注射哪一类?
  • 是什么导致给定的bean以后不被考虑?一个给定的罐子?

换句话说,我需要更详细地看待决策过程.出于某种原因,Guice并不需要这样做,也许是因为魔法少得多,也许是因为错误消息非常好.

您如何调试Weld应用程序,以及它有多大帮助?

java jsr330 cdi java-ee-6 jboss-weld

22
推荐指数
3
解决办法
7618
查看次数