我正在使用Hibernate和glassfish Server运行java Web应用程序.我正进入(状态
java.lang.OutOfMemoryError: PermGen space 在我多次部署之后的异常.
我试过-XX:MaxPermSize=128M我的环境变量,但它不起作用.
如果测试失败,我想截取屏幕截图.我想将这个逻辑添加到带注释的方法中,而不是用try/catch块包装所有测试方法@AfterMethod.
如何检测@AfterMethod当前测试失败的方法?
我想控制多项目Java构建中的哪些依赖项是可传递的.我目前的解决方案是在根项目中设置"导出"配置:
allprojects {
configurations {
export {
description = 'Exported classpath'
}
compile {
extendsFrom export
}
}
}
Run Code Online (Sandbox Code Playgroud)
项目A具有多个文件依赖项:
dependencies {
compile files('A.jar', 'B.jar')
export files('C.jar')
}
Run Code Online (Sandbox Code Playgroud)
项目B依赖于项目A,但只C.jar应在类路径上进行编译,因此添加:
dependencies {
export project(path: ':A', configuration:'export')
}
Run Code Online (Sandbox Code Playgroud)
这会产生所需的结果,A.jar并且B.jar不在类路径上,而是C.jar在类路径上进行编译.
我不确定这是否是"gradle"做事的方式.要配置传递性,我宁愿为项目A中的依赖项指定属性或配置闭包,而不是使用不同的"导出"配置.
这可能是文件依赖,还是有另一种方法来实现这一点?
我即将开始开发相当大的基于Java的桌面应用程序.在查看JIDE组件和框架之后,它似乎是一个很好的解决方案.我想听听使用这些产品的人的意见.他们有多可靠?什么是学习曲线?优点和缺点?
我想运行单个单元测试并收集其"分析"信息:每个方法调用的频率,创建了多少个特定类的实例,执行某个方法/线程需要多长时间等等.然后,我想要将此信息与某些预期值进行比较.是否有任何适用于Java的Profilers而不是让我这样做(所有这些都应该自动完成,当然没有任何GUI或用户交互)?
这就是我希望它的工作方式:
public class MyTest {
@Test
public void justTwoCallsToFoo() {
Profiler.start(Foo.class);
Foo foo = new Foo();
foo.someMethodToProfile(); // profiler should collect data here
assertThat(
Profiler.getTotalCallsMadeTo(Foo.class, "barMethod"),
equalTo(3)
);
}
}
Run Code Online (Sandbox Code Playgroud) 我知道在Java中,当你的情况很少时,不应该使用switch语句,在这种情况下,最好使用一个if else if.
对于groovy来说也是如此吗?
哪个在这两个代码之间更高效?
myBeans.each{
switch it.name
case 'aValue':
//some operation
case 'anotherValue:
//other operations
}
Run Code Online (Sandbox Code Playgroud)
要么:
myBeans.each{
if(it.name == 'aValue'){
//some operation
}
else if (it.name =='anotherValue){
//other operations
}
}
Run Code Online (Sandbox Code Playgroud) 我有使用install4j构建的我的应用程序的Linux版本,但我不知道如何使该服务在用户帐户下运行。有推荐的方法吗?
我有一个使用快捷方式运行的exe进程.
在快捷方式的"开始"属性中,我将其设置为所有应用程序资源所在的文件夹.该过程仍然在exe的位置查找文件,而不是在快捷方式中写入的位置.
我也可以在Process Explorer中看到它 - "当前目录"是exe的位置.
有没有办法改变它?
(如果我不够清楚 - 我想将我的应用程序放在一个中央网络位置而不是每个用户文件夹中 - 但我想让它运行 - 在每个用户文件夹上方通过在每个用户文件夹中放置一个快捷方式.)
顺便说一句:为什么我不用代码编写来解决它?因为我的exe中有第三方罐子(我使用exe4j来制作exe)
我想阻止IDEA在某些元素周围插入换行符,类似于HTML格式,其中某些元素(如<b>)保持内联.
我有一个带有DTD的XML方言,它声明了混合内容.
DTD:
<!ELEMENT mixed (#PCDATA|inline)*>
<!ELEMENT inline #PCDATA>
Run Code Online (Sandbox Code Playgroud)
XML文件:
<mixed>
Some text with <inline>inline elements</inline>
and a line break.
</mixed>
Run Code Online (Sandbox Code Playgroud)
当我重新格式化XML文件时,IDEA会将其转换为
<mixed>
Some text with
<inline>inline elements</inline>
and a line break.
</mixed>
Run Code Online (Sandbox Code Playgroud)
我查看了Code style-> XML-> Other的所有选项."保留空白"选项限制性太强,因为我希望IDEA打破长线.
有没有办法在没有安装JDK的远程计算机上创建堆转储?
我无法更改安装/设置,它在Windows上运行.所以我可以访问命令行工具.
问题是远程计算机上的Java应用程序冻结(没有内存不足因此-XX:-HeapDumpOnOutOfMemoryError无效)我们需要创建转储.
-XX:+HeapDumpOnCtrlBreak
Run Code Online (Sandbox Code Playgroud)
也没有选择,因为它不再支持JDK6 +.
出于安全原因,不允许使用JMX.
有任何想法吗?谢谢您的帮助!
编辑:
我要给自己直到凌晨12点才能学习并在kotlin上获得成功(希望如此).
继https://kotlinlang.org/docs/kotlin-docs.pdf我试过17页上的这些片段可能有人请帮助我理解了为什么===会返回true一个值之间-128来127?
以下确实打印false:
val a: Int = 10000
val boxedA: Int? = a // Integer@445
val anotherBoxedA: Int? = a // Integer@447 why?
print(boxedA === anotherBoxedA) // false
Run Code Online (Sandbox Code Playgroud)
但是改变a的任何值之间-128,以127始终打印true:
val a: Int = -128
val boxedA: Int? = a // Integer@445
val anotherBoxedA: Int? = a // Integer@445 why?
print(boxedA === anotherBoxedA) // true!
Run Code Online (Sandbox Code Playgroud)
在我看来,如果Int值的范围之外-128,以127 …
我开始使用iPhone编程,我发现iPhone有一个清晰的画面,让开发人员知道该做什么,比如loadView,viewWillAppear等等.现在,我想写一些Java SE程序,但它并不像我想的那么容易.我发现Java似乎没有这些东西(或者我不知道细节).我发现Java纯粹使用JFrame来创建GUI,如下所示:
import javax.swing.*;
class MyFrame extends JFrame {
public MyFrame() {
setTitle("My Empty Frame");
setSize(300,200); // default size is 0,0
setLocation(10,200); // default is 0,0 (top left corner)
}
public static void main(String[] args) {
JFrame f = new MyFrame();
f.show();
}
}
Run Code Online (Sandbox Code Playgroud)
是Java方法将所有内容放在main方法中吗?有更好的架构吗?
JProfiler 中的 Net IO 时间是什么意思?
JProfilerguide 说如下,但我不知道它到底是什么意思?是花在网络上的时间还是等待网络的时间?如果net io时间很大该怎么解决?
在网络操作期间,Java 标准库中的许多调用可能会阻塞,因为它们正在等待更多数据。这种阻塞在 JProfiler 中称为“Net I/O”。JProfiler 知道 JRE 中导致网络 I/O 阻塞的方法列表,并在加载时对它们进行检测。