小编Ksh*_*rma的帖子

如何关闭窗口关闭JavaFX应用程序?

在Swing中,您只需setDefaultCloseOperation()在窗口关闭时关闭整个应用程序即可.

但是在JavaFX中我找不到相应的东西.我打开了多个窗口,如果窗口关闭,我想关闭整个应用程序.在JavaFX中这样做的方法是什么?

编辑:

我明白我可以覆盖setOnCloseRequest()在窗口关闭时执行一些操作.问题是应该执行什么操作来终止整个应用程序?

stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
    @Override
    public void handle(WindowEvent event) {
        stop();
    }
});
Run Code Online (Sandbox Code Playgroud)

类中stop()定义的方法Application什么都不做.

java javafx javafx-2 javafx-8

70
推荐指数
4
解决办法
13万
查看次数

为什么使用invokedynamic调用Java 8 lambdas?

invokedynamic指令用于帮助VM在运行时确定方法引用,而不是在编译时对其进行硬连线.

这对于动态语言很有用,其中确切的方法和参数类型在运行时才知道.但Java lambda不是这种情况.它们被转换为具有明确定义的参数的静态方法.并且可以使用此方法调用此方法invokestatic.

那么invokedynamiclambda 的需求是什么,尤其是在性能受到影响的情况下?

java lambda jvm bytecode java-8

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

Protobuf找不到共享库

我使用以下命令安装了protobuf:

./configure
make
make check
make install
Run Code Online (Sandbox Code Playgroud)

但是,当我运行时,protoc我得到以下错误:

protoc: error while loading shared libraries: libprotoc.so.8: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

protocol-buffers

63
推荐指数
3
解决办法
5万
查看次数

在eclipse中调试时实时更改变量?

使用Eclipse时,在调试时可以在项目运行期间更改变量值以进行测试.

例如,假设我有一个返回数字5的方法,但出于测试目的,我想输出10.这不是我面临的问题,它有点复杂,但它只是为了让我的想法得以实现.

java eclipse testing debugging

53
推荐指数
4
解决办法
6万
查看次数

如何检查空切片?

我正在调用一个函数,如果没有值,则返回一个空数组.

当我这样做时,它不起作用:

if r == [] {
    fmt.Println("No return value")            
}
Run Code Online (Sandbox Code Playgroud)

我正在使用的工作是:

var a [0]int
if r == a {
    fmt.Println("No return value")            
}
Run Code Online (Sandbox Code Playgroud)

但是声明一个变量只是为了检查返回值似乎并不正确.有什么更好的方法呢?

go slice

51
推荐指数
3
解决办法
5万
查看次数

Ruby RVM apt-get更新错误

尝试使用RVM安装任何内容时出现以下错误:

Searching for binary rubies, this might take some time.
Found remote file https://rvm.io/binaries/ubuntu/13.04/x86_64/ruby-2.1.1.tar.bz2
Checking requirements for ubuntu.
Installing requirements for ubuntu.
Updating system..kshitiz password required for 'apt-get --quiet --yes update': 
............................
Error running 'requirements_debian_update_system ruby-2.1.1',
showing last 15 lines of /home/kshitiz/.rvm/log/1400047196_ruby-2.1.1/update_system.log
++ /scripts/functions/logging : rvm_pretty_print()  78 > case "${TERM:-dumb}" in
++ /scripts/functions/logging : rvm_pretty_print()  81 > case "$1" in
++ /scripts/functions/logging : rvm_pretty_print()  83 > [[ -t 2 ]]
++ /scripts/functions/logging : rvm_pretty_print()  83 > return 1
++ /scripts/functions/logging …
Run Code Online (Sandbox Code Playgroud)

ruby rvm

50
推荐指数
5
解决办法
3万
查看次数

如何在groovy中指定字符文字?

如何在groovy中指定字符文字,因为字符串中的'a'和"a"都会产生?

我不想仅为此目的声明一个字符变量.

groovy

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

如何从命令行更新Gradle依赖项?

我有以下build.gradle文件:

apply plugin: 'java'
apply plugin: 'eclipse'

sourceCompatibility = 1.7
version = '1.0'

repositories {
    mavenCentral()
}

dependencies {
    compile 'org.springframework:spring-core:4.1.1.RELEASE'
    compile 'org.springframework:spring-context:4.1.1.RELEASE'
    testCompile group: 'junit', name: 'junit', version: '4.+'
}
Run Code Online (Sandbox Code Playgroud)

我运行以下命令:

$ gradle --refresh-dependencies
Run Code Online (Sandbox Code Playgroud)

但它没有任何作用.依赖项不会更新,也不会反映在类路径上.命令的输出是:

:help

Welcome to Gradle 2.1.

To run a build, run gradle <task> ...

To see a list of available tasks, run gradle tasks

To see a list of command-line options, run gradle --help

BUILD SUCCESSFUL

Total time: 5.999 secs
Run Code Online (Sandbox Code Playgroud)

通过Eclipse gradle插件这样做是可行的.

java gradle

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

如何手动将JAR发布到maven central?

我创建了一个开源项目,我想将其发布到maven central,以便用户可以通过简单地在它们的pom中引用它来使用该库.像这样:

<dependency>
    <groupId>in.ksharma</groupId>
    <artifactId>log4j-weblayout</artifactId>
    <version>0.0.1-BETA</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我发现了几个在线教程,但其中一些已经过时,有些人建议自动完成整个过程,从而使其明显复杂化.

例如,一个教程建议为您的github帐户创建SSH密钥,并且只要推送到maven central,maven就会自动创建一个git标记.虽然这很有用,但没有必要开始.

另一个例子,尝试通过maven直接释放它也会产生某种错误:

mvn release:clean release:prepare release:perform -B -e | tee maven-central-deploy.log
Run Code Online (Sandbox Code Playgroud)

得到:

svn:E155007:'/ home/kshitiz/Documents/workspaces/ggts/log4j-weblayout/pom.xml'不是工作副本

当你第一次做某事时,通常先手动完成,然后自动完成.

将JAR置于maven中心的最基本,最简单的方法是什么?

java maven

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

为什么lambda转换需要生成静态方法?

Lambda转换是一个两步过程,一个是:将lambda放入同一个类中的静态方法中.

public class Main {
    public static void main(String[] args) {
        Runnable r = () -> System.out.println("Hello");
        System.out.println(Arrays.asList(Main.class.getDeclaredMethods()));
    }
}
Run Code Online (Sandbox Code Playgroud)

[ private static void Main.lambda $ main $ 0(),public static void Main.main(java.lang.String [])]

:生成实现功能接口的类.

System.out.println("A class has been generated: " + r.getClass());
System.out.println("That implements a Functional Interface: " + Arrays.asList(r.getClass().getInterfaces()));
Run Code Online (Sandbox Code Playgroud)

已生成一个类:类Main $$ Lambda $ 1/149928006

这实现了一个功能接口:[interface java.lang.Runnable]

问题:这种静态方法需要什么?为什么不能将lambda主体直接放入接口方法?就像是:

class Main$$Lambda$1 {
    public void run() {
        /* Lambda body here */
    }
}
Run Code Online (Sandbox Code Playgroud)

java lambda jvm bytecode java-8

19
推荐指数
2
解决办法
1612
查看次数