簡體   English   中英

當不從命令行運行時,Java應用程序掛起

[英]java app hangs when not run from command-line

在Windows 7中,當我雙擊.jar文件時,該應用程序會部分運行,然后掛起。 在命令行上使用java -jar MyFile.jarjavaw -jar MyFile.jar運行時,它運行得很好。 當使用GUI運行它時,它也可以在Linux Mint上正常運行。 有什么辦法可以調試嗎? (最好使用eclipse)

編輯:

好。 我可能已經縮小了范圍。 當我編寫一個簡單的測試應用程序時:

import javax.swing.JOptionPane;


public class MyDebug {
    private static void err(String message){
        JOptionPane.showMessageDialog(null,message);
    }
    public static void main(String[] args){
        err("test");
    }

該程序使用javaw在命令行中可以正常運行,但是當嘗試從桌面執行時,java提醒我它“找不到主類:MyDebug。程序將退出。”

編輯:

我可能現在將其范圍進一步縮小。 從桌面啟動時,使用32位版本的javaw,而從命令行啟動時,則使用64位版本。

解決了我的問題,方法是轉到控制面板中的程序和功能,然后卸載Java並重新安裝它。 雖然還不能回答我自己的帖子

@Benny Han給了我一個好主意(+1)。 嘗試從命令提示符處運行javaw -jar MyFile.jar而不是java -jar MyFile.jar 我相信,通過雙擊jar文件,您的應用程序將完全像在運行時那樣掛起。 在這種情況下,可能的原因是在程序中使用了STDIN或STDOUT。 請記住:使用javaw時它們不存在。

在Windows環境中,檢查java命令和javaw命令。 當您雙擊jar文件時,是javaw命令運行jar文件。 我猜可能是因為您安裝了多個jre。

嘗試通過腳本啟動。

echo "started from %cd%"
set scriptroot=%~dp0%

java -version
echo %path%

java -jar %scriptroot%\MyFile.jar

echo "press any key  to continue"
pause 

然后返回java版本,異常等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM