2012-09-28 11 views
7

मेरी .bashrc फ़ाइल में तक पहुंच:उपयोगकर्ता वातावरण चर

export DART_SDK=/home/nicolas/dart/dart-sdk 

कमांड लाइन में, यह काम करता है जब मैं इसे "गूंज"। लेकिन मैं साथ dart से इस उपयोगकर्ता चर नहीं देख सकते हैं, मैं सिर्फ प्रणाली चर लेकिन मेरा नहीं देखें:

var env = Platform.environment; 
env.forEach((k,v) => print("Key=$k Value=$v")); 

मैंने कोशिश की:

    खिड़कियों पर
  • और यह मैक पर
  • काम करता है लेकिन ऐसा नहीं करता काम

क्या मेरा उपयोगकर्ता चर अच्छी तरह से परिभाषित नहीं है? क्या मेरा कोड खराब है? यह एक बग है?

उत्तर

9

निम्नलिखित कोड का उपयोग करना:

import 'dart:io'; // Server side/command line only package. 

main() { 
    Map<String, String> env = Platform.environment; 
    env.forEach((k, v) => print("Key=$k Value=$v")); 
} 

मैं विंडोज और मैक दोनों पर वातावरण चर ओवरराइड करने के लिए कर रहा था। मैक पर मुझे लाइन को .bash_profile (.bashrc को मेरे मैक पर लोड नहीं किया गया था) में जोड़ना पड़ा। https://api.dartlang.org/1.13.0/dart-io/Platform-class.html

+0

धन्यवाद, तो मेरे कोड अच्छा है:

जॉन

यहाँ डार्ट डॉक्स के लिए लिंक है। कुछ परीक्षणों के बाद, व्यवहार अजीब है: जब मैं डार्ट संपादक से चलाता हूं, तो मैं अपना उपयोगकर्ता चर (लिनक्स और मैक ओएस) नहीं देख सकता, लेकिन मैं इसे कमांड लाइन के साथ चलाता हूं ... –

+0

हाय निकोलस, यह संभव है क्योंकि डार्ट संपादक एक बैश खोल के अंदर नहीं चल रहा है लेकिन डॉक या फाइंडर से उत्पन्न हुआ है जिसमें इसका पर्यावरण चर का अपना सेट है। लॉन्च एप्लिकेशन के लिए पर्यावरण चर को नियंत्रित करने के लिए इस पोस्ट को देखें- http://stackoverflow.com/questions/603785/environment-variables-in-mac-os-x – Cutch

संबंधित मुद्दे