Oto prosty problem: nie mogę wybrać pliku tekstowego:
Celem jest dostarczenie aplikacji Java mojego banku pliku tekstowego, aby mógł coś z tym zrobić.
W swoim opisie wyraźnie mówią, że plik musi mieć format txt, ale to wszystko.
Już z nimi rozmawiałem, nie udało mi się rozwiązać problemu. Dlatego tu jestem.
Czy istnieje sposób, aby Finder wymusił akceptację dowolnego typu pliku?
Kilka dodatkowych szczegółów
Próbowałem tych wariantów rozszerzeń: txt text TXT
nic nie działało.
W przypadku otwarcia okna dialogowego pliku otrzymuję to w konsoli systemowej:
fault 21:07:37.789598 +0100 java Faild to get owner UUID for url: <private> error: Error Domain=NSCocoaErrorDomain Code=260 UserInfo={NSURL=<private>, NSFilePath=<private>, NSUnderlyingError=0x7fd5d4f2d530 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}
fault 21:07:37.794009 +0100 java Faild to get owner UUID for url: <private> error: Error Domain=NSCocoaErrorDomain Code=260 UserInfo={NSURL=<private>, NSFilePath=<private>, NSUnderlyingError=0x7fd5d4f2cc30 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}
error 21:07:37.872025 +0100 java Unable to load Info.plist exceptions (eGPUOverrides)
default 21:07:39.792043 +0100 kernel AGC:: [java pid:18638] force EG up last PID 18638 WS-ready 1 switch-state 0 IG FBs 1 EG FBs 0:f power-state 0 3D busy HDA idle system-state 1 power-level 20:20 connect-change 0
default 21:07:39.792058 +0100 kernel AGC:: [java pid:18638] force EG up last PID 18638 WS-ready 1 switch-state 0 IG FBs 1 EG FBs 0:f power-state 0 3D busy HDA idle system-state 1 power-level 20:20 connect-change 0
Oto, co pokazuje konsola Java podczas tego samego wydarzenia:
Java Web Start 11.191.2.12 x86_64
Using JRE version 1.8.0_191-b12 Java HotSpot(TM) 64-Bit Server VM
User home directory = /Users/Birowsky
----------------------------------------------------
c: clear console window
f: finalize objects on finalization queue
g: garbage collect
h: display this help message
m: print memory usage
o: trigger logging
p: reload proxy configuration
q: hide console
r: reload policy configuration
s: dump system and deployment properties
t: dump thread list
v: dump thread stack
0-5: set trace level to <n>
----------------------------------------------------
08:42:19 INFO: WRITE: com.teamdev.jxbrowser.chromium.internal.ipc.message.FocusMessage@2b023366, SocketInfo{channelId=0, browserId=0, channelType=Browser}
08:42:19 INFO: READ: OnInvokeJSFunctionMessage{type=OnInvokeJSFunction, uid=28, name='CardReady', args='', returnValue='', errorMessage=''}, SocketInfo{channelId=0, browserId=0, channelType=Render}
CardReady() > checkServerCertificate(): true
Pozvana metoda run()
Number of readers: 1
Selected reader : 0
OS version: mac os x
Card is present!
Connection successful!
ATR: ok
Disconnection successful!
CardReady() > End: true
08:42:20 INFO: WRITE: OnInvokeJSFunctionMessage{type=OnInvokeJSFunction, uid=28, name='CardReady', args='', returnValue='b:1;', errorMessage=''}, SocketInfo{channelId=0, browserId=0, channelType=Render}
08:42:20 INFO: READ: OnInvokeJSFunctionMessage{type=OnInvokeJSFunction, uid=29, name='ClientGetCertID', args='', returnValue='', errorMessage=''}, SocketInfo{channelId=0, browserId=0, channelType=Render}
ClientGetCertID() > checkServerCertificate(): true
08:42:20 INFO: WRITE: OnInvokeJSFunctionMessage{type=OnInvokeJSFunction, uid=29, name='ClientGetCertID', args='', returnValue='s:46;2051668607190566542320627606591412845831791822;', errorMessage=''}, SocketInfo{channelId=0, browserId=0, channelType=Render}
08:42:20 INFO: READ: OnInvokeJSFunctionMessage{type=OnInvokeJSFunction, uid=30, name='openFiles', args='', returnValue='', errorMessage=''}, SocketInfo{channelId=0, browserId=0, channelType=Render}
openFiles() > checkServerCertificate(): true
08:42:20 INFO: WRITE: com.teamdev.jxbrowser.chromium.internal.ipc.message.UnfocusMessage@4d6101, SocketInfo{channelId=0, browserId=0, channelType=Browser}
----------------------------------------------------
>>>> Close "Open File" dialog <<<<
----------------------------------------------------
08:42:56 INFO: WRITE: OnInvokeJSFunctionMessage{type=OnInvokeJSFunction, uid=30, name='openFiles', args='', returnValue='o:undefined;', errorMessage=''}, SocketInfo{channelId=0, browserId=0, channelType=Render}
08:42:56 INFO: WRITE: com.teamdev.jxbrowser.chromium.internal.ipc.message.FocusMessage@49ffaaaa, SocketInfo{channelId=0, browserId=0, channelType=Browser}
08:42:58 INFO: WRITE: com.teamdev.jxbrowser.chromium.internal.ipc.message.UnfocusMessage@26a71c78, SocketInfo{channelId=0, browserId=0, channelType=Browser}
Oto jak wygląda moja konfiguracja Java .
Odpowiedzi:
Filtrowane według nazwy
Otwarte okno dialogowe Apple filtruje pliki tylko według nazwy i rozszerzenia. Jest bardzo mało prawdopodobne, że zawartość plików jest odczytywana i filtrowana, aby zdecydować, czy można je wybrać. Takie postępowanie stanowiłoby zarówno zagrożenie bezpieczeństwa, jak i koszmar wydajności.
Zakładając, że istnieje rozszerzenie pliku lub wzór, którego szuka otwarte okno dialogowe. Jako proces Java możliwe jest porównanie jest wielkość liter lub szukasz rozszerzeń typu okna zamiast UNIX
.TXT
vs.txt
lub.text
vs.txt
.Java Security
Alternatywnie możliwe jest , że ograniczenia bezpieczeństwa powstrzymują aplet Javy przed wybieraniem plików na komputerze.
Użyj /Applications/Utilities/Console.app, aby wyszukać komunikaty o błędach i ostrzeżenia zgłaszane przez dowolne
java
procesy. Jeśli obowiązują ograniczenia bezpieczeństwa, prawdopodobnie pojawi się komunikat w dzienniku.Panel sterowania Java
Preferencje systemowe> Java> Java Control Panel
W Panelu sterowania Java na macOS znajduje się wiele zabezpieczeń i zaawansowanych ustawień, które mogą ograniczać działania procesu Java.
Sprawdź, czy masz zainstalowaną najnowszą wersję Java. Sprawdź także ustawienia zabezpieczeń. Zapewnić ostrzeżenia są wyświetlane
Mixed code verification
i może włączyćJava console
sięShow console
.Zgłoś błąd
Jeśli to nie zadziała, zgłoś problem bankowi. Mogą wiedzieć o tym problemie i być w stanie dostarczyć rozwiązanie.
źródło
panel:shouldEnableURL:
mówią, że powinna być szybka, ale nie dlatego, że nie może w ogóle patrzeć na zawartość pliku. Jednak bardziej prawdopodobne jest, że ta aplikacja Java ma po prostu błąd.Aplikacja może szukać pliku z rozszerzeniem
.txt
. Na przykład;yourfilename.txt
. TextEdit doda to rozszerzenie automatycznie do otwieranych plików tekstowych. Powinieneś spróbować otworzyć plik w TextEdit i sprawdzić, czy dodaje rozszerzenie. Jeśli otworzy plik, ale nie zapisze go.txt
na końcu, zrób Zapisz jako i dodaj rozszerzenie ręcznie.źródło