🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

OS

OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

Q&A

解決済

2回答

589閲覧

Javaを使って、ハイフンで途切れることなく、OSのユーザーアカウント名を「完全に」取得したい。

onni7sqzda5tmd

総合スコア1

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

OS

OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

0グッド

0クリップ

投稿2021/03/12 06:04

前提・実現したいこと

Javaを使って、OSのユーザーアカウント名を「完全に」取得したい。

発生している問題・エラーメッセージ

エラーは無し。
ハイフンを含むユーザーアカウント名が、ハイフンまでしか取得できない。
(例.abc-qwertyというユーザーアカウント名の場合、abc-と結果が得られた)

環境

JavaSE-11、Eclipse環境。

該当のソースコード

package sample; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class SampleClass { public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put("user.name","ユーザーアカウント名"); Set<Map.Entry<String, String>> entry = map.entrySet(); Map.Entry<String, String> item; String property = null; for(Iterator<Map.Entry<String, String>> iterator = entry.iterator(); iterator.hasNext(); ) { item = iterator.next(); // 原因と思われる箇所 property = System.getProperty(item.getKey()); System.out.println(item.getKey() + "(" + item.getValue() + ") : " + property); } } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2021/03/12 10:05

OSは、Windowsでしょうか。その辺りの詳細な情報を質問文中に示しましょう。 Windowsである場合、コマンドプロンプト上で echo %USERNAME% と実行したとき、どのような出力がされますか?
onni7sqzda5tmd

2021/03/12 10:19

OSは、Windows 10です。 echo %USERNAME%を実行したところ、abc-と出力され一致しています。 systeminfoで「登録されている所有者」と混同していました。
guest

回答2

0

修正することなく、OSのユーザーアカウント名を取得できていました。
ご回答ありがとうございました。

投稿2021/03/12 10:22

onni7sqzda5tmd

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

Properties の中身を全部表示して、user.nameの値と他の項目で
ハイフンが含まれる項目を確認してみてください。
元々user.nameに正しい値が設定されていなければ、
取得のしようがありませんのでなんともなりません。

Java

1 public static void main(String[] args) { 2 var format = "key: %1$s, value: %2$s"; 3 Properties properties = System.getProperties(); 4 properties.forEach((o, o2) -> System.out 5 .println(String.format(format, o.toString(), o2.toString()))); 6 } 7

投稿2021/03/12 08:15

Luice

総合スコア771

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問